/*
 *	generate the tuple from quad list
 */
TUPLE	*generate_quad_2_tuple( QUAD *quad_list)
{
	TUPLE *tuple;
	TUPLE *tuple_tail;
	QUAD	*quad;
/*
 *	create nop on head of list
 */
	tuple = new_tuple( I_NOP, 0, 0, MASK_INSTR, 0, 0);
	tuple_tail = tuple;
/*
 *	generate the quad linked list structure
 */
	for( quad = quad_list; quad; quad = quad->next)
	{
		tuple_tail->next = generate_quad( quad);
		tuple_tail = end_tuple_list( tuple_tail);
	}
	return tuple;
}
Ejemplo n.º 2
0
  bool Graphics::Load()
  {
    //temporary init
    LoadModel("skybox.bin");
    LoadModel("bettersphere.bin");
    LoadModel("box.bin");
    LoadModel("bunny.bin");
    LoadModel("sphere.bin");
    LoadModel("plane.bin");
    LoadModel("dragon.bin");
    LoadModel("horse.bin");

    LoadModel("smoothbox.bin");
    LoadModel("smoothbunny.bin");
    LoadModel("smoothsphere.bin");
    LoadModel("smoothplane.bin");
    LoadModel("smoothdragon.bin");
    LoadModel("smoothhorse.bin");
    
    models_.insert("quad", generate_quad());
    

    LoadTexture("white.png");
    LoadTexture("cat_test.png");
    LoadTexture("other_checkerboard.png");
    LoadTexture("sheep.png");
    LoadTexture("bettercheckerboard.png");
    LoadTexture("diffuseroof.png");
    LoadTexture("basic-normal.png");
    LoadTexture("feather.png");


    LoadTexture("-x.png");
    LoadTexture("+x.png");
    LoadTexture("-y.png");
    LoadTexture("+y.png");
    LoadTexture("-z.png");
    LoadTexture("+z.png");


    LoadBumpMap("specularroof.png");
    
    AddShader("flat", &vertexShaderCallback);
    AddShader("vertexblinn", &vertexShaderCallback);
    AddShader("lines", &LineShaderCallback);
    AddShader("vertexphong", &vertexShaderCallback);
    AddShader("pixelphong", &vertexShaderCallback);
    AddShader("pixelblinn", &vertexShaderCallback);
    AddShader("particle", &ParticleShaderCallback);


    AddShader("reflection", &reflectionShaderCallback);
    AddShader("skybox", &skyboxShaderCallback);

    AddShader("reflectionplanar", &vertexShaderCallback);
    AddShader("reflectioncylindrical", &vertexShaderCallback);
    AddShader("reflectionspherical", &vertexShaderCallback);
    AddShader("reflectioncubic", &vertexShaderCallback);

    AddShader("normalplanar", &vertexShaderCallback);
    AddShader("normalcylindrical", &vertexShaderCallback);
    AddShader("normalspherical", &vertexShaderCallback);
    AddShader("normalcubic", &vertexShaderCallback);

    AddShader("positionplanar", &vertexShaderCallback);
    AddShader("positioncylindrical", &vertexShaderCallback);
    AddShader("positionspherical", &vertexShaderCallback);
    AddShader("positioncubic", &vertexShaderCallback);

    AddShader("centroidplanar", &vertexShaderCallback);
    AddShader("centroidcylindrical", &vertexShaderCallback);
    AddShader("centroidspherical", &vertexShaderCallback);
    AddShader("centroidcubic", &vertexShaderCallback);
    AddShader("normalmapping", &vertexShaderCallback);
    

    //AddShader("wireframe", &WireframeShaderCallback);
    

    //EmitterDescription emitterDesc;
    //emitterDesc.emitLength = 0.05f;
    //emitterDesc.frequency = 0.1f;
    //emitterDesc.lazy = false;
    //emitterDesc.amountToSpawn = 12;
    //emitterDesc.lifetime = 0.0f;
    //emitterDesc.sourceModel = "sphere";
    //emitterDesc.sourceTexture = "white";
    //emitterDesc.spawnPos = Vector3(10.0f, 2.0f, 10.0f);
    //ParticleEmitter* emitter = particle_manager_->MakeParticleEmitter(1000, emitterDesc);
    //
    //ParticleDescription states[3];
    //states[0] = ParticleDescription(Vector4(0.0f, 5.0f, 0.0f, 1.0f),
    //                               Vector4(0.0f, 1.0f, 0.0f, 1.0f),
    //                               Vector4(1.0f, 1.0f, 1.0f, 1.0f),
    //                               Vector4(0.5f, 0.5f, 0.5f, 0.5f),
    //                               0.0f, 
    //                               5.0f);
    //states[1] = ParticleDescription(Vector4(0.0f, 5.0f, 0.0f, 1.0f),
    //                               Vector4(0.0f, 0.5f, 0.0f, 1.0f),
    //                               Vector4(1.0f, 0.25f, 0.25f, 0.0f),
    //                               Vector4(0.25f, 0.25f, 0.25f, 0.0f),
    //                               0.0f,
    //                               5.0f);
    //
    //states[2] = ParticleDescription(Vector4(0.0f, 5.0f, 0.0f, 1.0f),
    //                               Vector4(0.0f, 0.25f, 0.0f, 1.0f),
    //                               Vector4(1.0f, 1.0f, 0.1f, 0.0f),
    //                               Vector4(0.05f, 0.05f, 0.05f, 0.0f),
    //                               0.0f,
    //                               5.0f);
    //
    //
    //ParticleDescription variance[3];
    //variance[0] = ParticleDescription(Vector4(0.1f, 0.25f, 0.1f, 0.0f),
    //                                 Vector4(0.25f, 0.25f, 0.25f, 1.0f),
    //                                 Vector4(),
    //                                 Vector4(),
    //                                 0.0f,
    //                                 0.1f);
    //variance[1] = ParticleDescription(Vector4(0.1f, 0.1f, 0.1f, 1.0f),
    //                                 Vector4(0.25f, 0.25f, 0.25f, 1.0f),
    //                                 Vector4(),
    //                                 Vector4(),
    //                                 0.0f,
    //                                 0.1f);
    //
    //variance[2] = ParticleDescription(Vector4(0.1f, 0.1f, 0.1f, 1.0f),
    //                                 Vector4(0.1f, 0.1f, 0.1f, 1.0f),
    //                                 Vector4(),
    //                                 Vector4(),
    //                                 0.0f,
    //                                 0.1f);
    //
    //emitter->AddParticleState(states[0], variance[0]);
    //emitter->AddParticleState(states[1], variance[1]);
    //emitter->AddParticleState(states[2], variance[2]);
    //emitter->RegisterAttribute("Velocity");
    //emitter->RegisterAttribute("Lifetime");
    //emitter->RegisterAttribute("Color");
    //emitter->RegisterAttribute("Scale");
    


    return true;
  }