| @@ -47,7 +47,8 @@ liblol_a_SOURCES = \ | |||||
| debug/quad.cpp debug/quad.h | debug/quad.cpp debug/quad.h | ||||
| nodist_liblol_a_SOURCES = \ | nodist_liblol_a_SOURCES = \ | ||||
| gpu/defaultmaterial.lolfx.cpp \ | gpu/defaultmaterial.lolfx.cpp \ | ||||
| gpu/emptymaterial.lolfx.cpp | |||||
| gpu/emptymaterial.lolfx.cpp \ | |||||
| gpu/testmaterial.lolfx.cpp | |||||
| liblol_a_CPPFLAGS = @LOL_CFLAGS@ | liblol_a_CPPFLAGS = @LOL_CFLAGS@ | ||||
| CLEANFILES = $(filter %.lolfx.cpp, $(SOURCES)) | CLEANFILES = $(filter %.lolfx.cpp, $(SOURCES)) | ||||
| @@ -0,0 +1,81 @@ | |||||
| /* | |||||
| * LolFx Test Material | |||||
| */ | |||||
| technique Foo // can have lots of different techniques in a single lolfx file | |||||
| { | |||||
| pass p0 | |||||
| { | |||||
| texture[0] = null; | |||||
| texture[1] = null; | |||||
| texture[2] = null; | |||||
| cullmode = none; // ccw | |||||
| lighting = false; | |||||
| zenable = true; // false | |||||
| alphablendenable = true; // false | |||||
| srcblend = src_alpha; // one | |||||
| destblend = inv_src_alpha; | |||||
| colorop[0] = select_arg1; | |||||
| colorarg1[0] = diffuse; | |||||
| alphaop[0] = select_arg1; | |||||
| alphaarg1[0] = diffuse; | |||||
| colorop[1] = disable; | |||||
| alphaop[1] = disable; | |||||
| // Ye old way | |||||
| vertexshader = ... | |||||
| geometryshader = ... | |||||
| pixelshader = ... | |||||
| // Ogre crap | |||||
| SetBlendState(AdditiveBlending, float4(0.0f, 0.0f, 0.0f, 0.0f), 0xFFFFFFFF); | |||||
| SetDepthStencilState(DisableDepth, 0); | |||||
| // D3D11 way | |||||
| SetBlendState() | |||||
| SetDepthStencilState() | |||||
| SetRasterizerState() | |||||
| SetVertexShader | |||||
| SetDomainShader | |||||
| SetHullShader | |||||
| SetGeometryShader | |||||
| SetPixelShader | |||||
| SetComputeShader /* WTF? */ | |||||
| SetRenderTargets(RTV0, DSV); | |||||
| SetRenderTargets(RTV0, RTV1, DSV); | |||||
| ... | |||||
| SetRenderTargets(RTV0, RTV1, RTV2, RTV3, RTV4, RTV5, RTV6, RTV7, DSV); | |||||
| } | |||||
| pass p1 | |||||
| { | |||||
| // Autres vertex/pixel shaders avec éventuellement des | |||||
| // dépendances sur le résultat des passes précédentes | |||||
| vertexshader = ... | |||||
| } | |||||
| } | |||||
| -- GLSL.Vert -- | |||||
| #version 120 | |||||
| /* Valid with my GLSL compiler */ | |||||
| #pragma lolfx semantic(in_Vertex, POSITION) | |||||
| #pragma lolfx semantic(in_Normal, NORMAL) | |||||
| #pragma lolfx semantic(in_Color, COLOR) | |||||
| attribute vec3 in_Vertex; | |||||
| attribute vec3 in_Normal; | |||||
| attribute vec4 in_Color; | |||||
| void main(void) | |||||
| { | |||||
| ... | |||||
| } | |||||
| @@ -1,6 +1,6 @@ | |||||
| -- GLSL.Vert -- | -- GLSL.Vert -- | ||||
| #version 120\n | |||||
| #version 120 | |||||
| attribute vec3 in_Vertex; | attribute vec3 in_Vertex; | ||||
| attribute vec3 in_Color; | attribute vec3 in_Color; | ||||
| @@ -194,6 +194,7 @@ | |||||
| <ItemGroup> | <ItemGroup> | ||||
| <LolFxCompile Include="..\src\gpu\defaultmaterial.lolfx" /> | <LolFxCompile Include="..\src\gpu\defaultmaterial.lolfx" /> | ||||
| <LolFxCompile Include="..\src\gpu\emptymaterial.lolfx" /> | <LolFxCompile Include="..\src\gpu\emptymaterial.lolfx" /> | ||||
| <LolFxCompile Include="..\src\gpu\testmaterial.lolfx" /> | |||||
| </ItemGroup> | </ItemGroup> | ||||
| <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | ||||
| <ImportGroup Label="ExtensionTargets"> | <ImportGroup Label="ExtensionTargets"> | ||||
| @@ -407,5 +407,8 @@ | |||||
| <LolFxCompile Include="..\src\gpu\defaultmaterial.lolfx"> | <LolFxCompile Include="..\src\gpu\defaultmaterial.lolfx"> | ||||
| <Filter>src\gpu</Filter> | <Filter>src\gpu</Filter> | ||||
| </LolFxCompile> | </LolFxCompile> | ||||
| <LolFxCompile Include="..\src\gpu\testmaterial.lolfx"> | |||||
| <Filter>src\gpu</Filter> | |||||
| </LolFxCompile> | |||||
| </ItemGroup> | </ItemGroup> | ||||
| </Project> | |||||
| </Project> | |||||