@@ -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> |