Esempio n. 1
0
 //-----------------------------------------------------------------------
 Technique* Material::createTechnique(void)
 {
     Technique *t = OGRE_NEW Technique(this);
     mTechniques.push_back(t);
     mCompilationRequired = true;
     return t;
 }
Esempio n. 2
0
bool Effect::LoadEffectFile(const std::string& filename)
{
	// Release the old effect and clear the old techniques
	SafeRelease(mEffect);
	mTechniques.clear();


	// Load and compile the new effect
	UINT shaderFlags = D3D10_SHADER_ENABLE_STRICTNESS;
#ifdef DEBUG_MODE
		shaderFlags |= D3D10_SHADER_DEBUG;
#endif

	ID3D10Blob* errors = NULL;
	HRESULT result = D3DX10CreateEffectFromFile(filename.c_str(),
												NULL,
												NULL,
												"fx_4_0",
												shaderFlags,
												0,
												mDevice,
												NULL,
												NULL,
												&mEffect,
												&errors,
												NULL);

	// See if load and compile was successful
	if (FAILED(result))
	{
		// If we have compile errors, print them
		if (errors != NULL)
		{
			MessageBox(NULL, static_cast<char*>(errors->GetBufferPointer()), "Error", MB_OK | MB_ICONERROR);
			SafeRelease(errors);
		}

		return false;
	}

	// Store all techniques
	D3D10_EFFECT_DESC effectDescription;
	mEffect->GetDesc(&effectDescription);
	
	mTechniques.reserve(effectDescription.Techniques);
	for (unsigned int i = 0; i < effectDescription.Techniques; ++i)
	{
		mTechniques.push_back(Technique(mEffect->GetTechniqueByIndex(i)));
	}

	return true;
}
Esempio n. 3
0
#include <GeneratedMesh.h>
#include <Shader.h>
#include <Technique.h>
#include <Scene.h>

#include <math.h>
#include <unistd.h>

#define WINDOW_WIDTH  640 
#define WINDOW_HEIGHT 480

//Declare scene elements
Scene scene;

Camera* eye = NULL;
Technique tech = Technique("Assets/shader.vs", "Assets/shader.fs");
Technique solid = Technique("Assets/shader.vs", "Assets/solid.fs");
Pipeline pipeline;

void Render()
{
    //Set up
    glClearColor(0.0f, 0.2f, 0.4f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    //Render scene
    tech.renderScene(&scene);

    glutSwapBuffers();

    //Reset controls