浏览代码

gpu: start working on the LolFx format.

legacy
Sam Hocevar sam 12 年前
父节点
当前提交
fc618350f6
共有 5 个文件被更改,包括 89 次插入3 次删除
  1. +2
    -1
      src/Makefile.am
  2. +81
    -0
      src/gpu/testmaterial.lolfx
  3. +1
    -1
      test/tutorial/02_cube.lolfx
  4. +1
    -0
      win32/lolcore.vcxproj
  5. +4
    -1
      win32/lolcore.vcxproj.filters

+ 2
- 1
src/Makefile.am 查看文件

@@ -47,7 +47,8 @@ liblol_a_SOURCES = \
debug/quad.cpp debug/quad.h
nodist_liblol_a_SOURCES = \
gpu/defaultmaterial.lolfx.cpp \
gpu/emptymaterial.lolfx.cpp
gpu/emptymaterial.lolfx.cpp \
gpu/testmaterial.lolfx.cpp
liblol_a_CPPFLAGS = @LOL_CFLAGS@

CLEANFILES = $(filter %.lolfx.cpp, $(SOURCES))


+ 81
- 0
src/gpu/testmaterial.lolfx 查看文件

@@ -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
- 1
test/tutorial/02_cube.lolfx 查看文件

@@ -1,6 +1,6 @@
-- GLSL.Vert --

#version 120\n
#version 120

attribute vec3 in_Vertex;
attribute vec3 in_Color;


+ 1
- 0
win32/lolcore.vcxproj 查看文件

@@ -194,6 +194,7 @@
<ItemGroup>
<LolFxCompile Include="..\src\gpu\defaultmaterial.lolfx" />
<LolFxCompile Include="..\src\gpu\emptymaterial.lolfx" />
<LolFxCompile Include="..\src\gpu\testmaterial.lolfx" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">


+ 4
- 1
win32/lolcore.vcxproj.filters 查看文件

@@ -407,5 +407,8 @@
<LolFxCompile Include="..\src\gpu\defaultmaterial.lolfx">
<Filter>src\gpu</Filter>
</LolFxCompile>
<LolFxCompile Include="..\src\gpu\testmaterial.lolfx">
<Filter>src\gpu</Filter>
</LolFxCompile>
</ItemGroup>
</Project>
</Project>

正在加载...
取消
保存