Updated MRT examples to use MRT clear API.

This commit is contained in:
Branimir Karadžić 2014-09-01 13:24:30 -07:00
Родитель d3af45bd56
Коммит 889af211fe
2 изменённых файлов: 35 добавлений и 14 удалений

Просмотреть файл

@ -143,10 +143,6 @@ void screenSpaceQuad(float _textureWidth, float _textureHeight, bool _originBott
int _main_(int /*_argc*/, char** /*_argv*/)
{
// Create vertex stream declaration.
PosColorVertex::init();
PosColorTexCoord0Vertex::init();
uint32_t width = 1280;
uint32_t height = 720;
uint32_t debug = BGFX_DEBUG_TEXT;
@ -155,6 +151,10 @@ int _main_(int /*_argc*/, char** /*_argv*/)
bgfx::init();
bgfx::reset(width, height, reset);
// Create vertex stream declaration.
PosColorVertex::init();
PosColorTexCoord0Vertex::init();
// Enable debug text.
bgfx::setDebug(debug);
@ -306,11 +306,25 @@ int _main_(int /*_argc*/, char** /*_argv*/)
bgfx::setViewTransform(0, view, proj);
bgfx::setViewClearMask(0x3
// Set clear color palette for index 0
bgfx::setClearColor(0, 0.0f, 0.0f, 0.0f, 0.0f);
// Set clear color palette for index 1
bgfx::setClearColor(1, 1.0f, 1.0f, 1.0f, 1.0f);
bgfx::setViewClear(0
, BGFX_CLEAR_COLOR_BIT|BGFX_CLEAR_DEPTH_BIT
, 0x00000000
, 1.0f
, 0
, 1.0f // Depth
, 0 // Stencil
, 0 // FB texture 0, color palette 0
, 1 == mode ? 1 : 0 // FB texture 1, color palette 1
);
bgfx::setViewClear(1
, BGFX_CLEAR_COLOR_BIT|BGFX_CLEAR_DEPTH_BIT
, 1.0f // Depth
, 0 // Stencil
, 0 // Color palette 0
);
bgfx::FrameBufferHandle invalid = BGFX_INVALID_HANDLE;

Просмотреть файл

@ -232,19 +232,26 @@ int _main_(int /*_argc*/, char** /*_argv*/)
// Enable debug text.
bgfx::setDebug(debug);
// Set view 0 clear state.
// Set clear color palette for index 0
bgfx::setClearColor(0, UINT32_C(0x00000000) );
// Set clear color palette for index 1
bgfx::setClearColor(1, UINT32_C(0x303030ff) );
// Set geometry pass view clear state.
bgfx::setViewClear(RENDER_PASS_GEOMETRY_ID
, BGFX_CLEAR_COLOR_BIT|BGFX_CLEAR_DEPTH_BIT
, 0x303030ff
, 1.0f
, 0
, 1
);
// Set light pass view clear state.
bgfx::setViewClear(RENDER_PASS_LIGHT_ID
, BGFX_CLEAR_COLOR_BIT|BGFX_CLEAR_DEPTH_BIT
, 0
, 1.0f
, 0
, 0
);
// Create vertex stream declaration.
@ -439,7 +446,7 @@ int _main_(int /*_argc*/, char** /*_argv*/)
// Setup views
float vp[16];
float invvp[16];
float invMvp[16];
{
bgfx::setViewRectMask(0
| RENDER_PASS_GEOMETRY_BIT
@ -459,7 +466,7 @@ int _main_(int /*_argc*/, char** /*_argv*/)
bgfx::setViewTransform(RENDER_PASS_GEOMETRY_ID, view, proj);
bx::mtxMul(vp, view, proj);
bx::mtxInverse(invvp, vp);
bx::mtxInverse(invMvp, vp);
bx::mtxOrtho(proj, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 100.0f);
bgfx::setViewTransformMask(0
@ -644,7 +651,7 @@ int _main_(int /*_argc*/, char** /*_argv*/)
// Draw light.
bgfx::setUniform(u_lightPosRadius, &lightPosRadius);
bgfx::setUniform(u_lightRgbInnerR, lightRgbInnerR);
bgfx::setUniform(u_mtx, invvp);
bgfx::setUniform(u_mtx, invMvp);
const uint16_t scissorHeight = uint16_t(y1-y0);
bgfx::setScissor(uint16_t(x0), height-scissorHeight-uint16_t(y0), uint16_t(x1-x0), scissorHeight);
bgfx::setTexture(0, s_normal, gbuffer, 1);