Index: core/cross/command_buffer/states_cb.cc |
=================================================================== |
--- core/cross/command_buffer/states_cb.cc (revision 26886) |
+++ core/cross/command_buffer/states_cb.cc (working copy) |
@@ -42,137 +42,136 @@ |
namespace o3d { |
using command_buffer::CommandBufferEntry; |
using command_buffer::CommandBufferHelper; |
-using command_buffer::GAPIInterface; |
namespace { |
// Converts values meant to represent a Cull Mode to the corresponding |
// command-buffer value. |
// Default: CULL_NONE. |
-GAPIInterface::FaceCullMode CullModeToCB(int cull) { |
+command_buffer::FaceCullMode CullModeToCB(int cull) { |
switch (cull) { |
default: |
case State::CULL_NONE: |
- return GAPIInterface::CULL_NONE; |
+ return command_buffer::kCullNone; |
case State::CULL_CW: |
- return GAPIInterface::CULL_CW; |
+ return command_buffer::kCullCW; |
case State::CULL_CCW: |
- return GAPIInterface::CULL_CCW; |
+ return command_buffer::kCullCCW; |
} |
} |
// Converts values meant to represent a Polygon Fill Mode to the corresponding |
// command-buffer value. |
-// Default: POLYGON_MODE_FILL. |
-GAPIInterface::PolygonMode FillModeToCB(int fill) { |
+// Default: kPolygonModeFill. |
+command_buffer::PolygonMode FillModeToCB(int fill) { |
switch (fill) { |
case State::POINT: |
- return GAPIInterface::POLYGON_MODE_POINTS; |
+ return command_buffer::kPolygonModePoints; |
case State::WIREFRAME: |
- return GAPIInterface::POLYGON_MODE_LINES; |
+ return command_buffer::kPolygonModeLines; |
default: |
case State::SOLID: |
- return GAPIInterface::POLYGON_MODE_FILL; |
+ return command_buffer::kPolygonModeFill; |
} |
} |
// Converts values meant to represent a Comparison Function to the corresponding |
// command-buffer value. |
-// Default: ALWAYS. |
-GAPIInterface::Comparison ComparisonToCB(int comparison) { |
+// Default: kAlways. |
+command_buffer::Comparison ComparisonToCB(int comparison) { |
switch (comparison) { |
case State::CMP_NEVER: |
- return GAPIInterface::NEVER; |
+ return command_buffer::kNever; |
case State::CMP_LESS: |
- return GAPIInterface::LESS; |
+ return command_buffer::kLess; |
case State::CMP_EQUAL: |
- return GAPIInterface::EQUAL; |
+ return command_buffer::kEqual; |
case State::CMP_LEQUAL: |
- return GAPIInterface::LEQUAL; |
+ return command_buffer::kLEqual; |
case State::CMP_GREATER: |
- return GAPIInterface::GREATER; |
+ return command_buffer::kGreater; |
case State::CMP_NOTEQUAL: |
- return GAPIInterface::NOT_EQUAL; |
+ return command_buffer::kNotEqual; |
case State::CMP_GEQUAL: |
- return GAPIInterface::GEQUAL; |
+ return command_buffer::kGEqual; |
case State::CMP_ALWAYS: |
default: |
- return GAPIInterface::ALWAYS; |
+ return command_buffer::kAlways; |
} |
} |
// Converts values meant to represent a Stencil Operation to the corresponding |
// command-buffer value. |
-// Default: KEEP. |
-GAPIInterface::StencilOp StencilOpToCB(int op) { |
+// Default: kKeep. |
+command_buffer::StencilOp StencilOpToCB(int op) { |
switch (op) { |
default: |
case State::STENCIL_KEEP: |
- return GAPIInterface::KEEP; |
+ return command_buffer::kKeep; |
case State::STENCIL_ZERO: |
- return GAPIInterface::ZERO; |
+ return command_buffer::kZero; |
case State::STENCIL_REPLACE: |
- return GAPIInterface::REPLACE; |
+ return command_buffer::kReplace; |
case State::STENCIL_INCREMENT_SATURATE: |
- return GAPIInterface::INC_NO_WRAP; |
+ return command_buffer::kIncNoWrap; |
case State::STENCIL_DECREMENT_SATURATE: |
- return GAPIInterface::DEC_NO_WRAP; |
+ return command_buffer::kDecNoWrap; |
case State::STENCIL_INVERT: |
- return GAPIInterface::INVERT; |
+ return command_buffer::kInvert; |
case State::STENCIL_INCREMENT: |
- return GAPIInterface::INC_WRAP; |
+ return command_buffer::kIncWrap; |
case State::STENCIL_DECREMENT: |
- return GAPIInterface::DEC_WRAP; |
+ return command_buffer::kDecWrap; |
} |
} |
// Converts values meant to represent a Blending Function to the corresponding |
// command-buffer value. |
-// Default: BLEND_FUNC_ONE. |
-GAPIInterface::BlendFunc BlendFuncToCB(int func) { |
+// Default: kBlendFuncOne. |
+command_buffer::BlendFunc BlendFuncToCB(int func) { |
switch (func) { |
case State::BLENDFUNC_ZERO: |
- return GAPIInterface::BLEND_FUNC_ZERO; |
+ return command_buffer::kBlendFuncZero; |
default: |
case State::BLENDFUNC_ONE: |
- return GAPIInterface::BLEND_FUNC_ONE; |
+ return command_buffer::kBlendFuncOne; |
case State::BLENDFUNC_SOURCE_COLOR: |
- return GAPIInterface::BLEND_FUNC_SRC_COLOR; |
+ return command_buffer::kBlendFuncSrcColor; |
case State::BLENDFUNC_INVERSE_SOURCE_COLOR: |
- return GAPIInterface::BLEND_FUNC_INV_SRC_COLOR; |
+ return command_buffer::kBlendFuncInvSrcColor; |
case State::BLENDFUNC_SOURCE_ALPHA: |
- return GAPIInterface::BLEND_FUNC_SRC_ALPHA; |
+ return command_buffer::kBlendFuncSrcAlpha; |
case State::BLENDFUNC_INVERSE_SOURCE_ALPHA: |
- return GAPIInterface::BLEND_FUNC_INV_SRC_ALPHA; |
+ return command_buffer::kBlendFuncInvSrcAlpha; |
case State::BLENDFUNC_DESTINATION_ALPHA: |
- return GAPIInterface::BLEND_FUNC_DST_ALPHA; |
+ return command_buffer::kBlendFuncDstAlpha; |
case State::BLENDFUNC_INVERSE_DESTINATION_ALPHA: |
- return GAPIInterface::BLEND_FUNC_INV_DST_ALPHA; |
+ return command_buffer::kBlendFuncInvDstAlpha; |
case State::BLENDFUNC_DESTINATION_COLOR: |
- return GAPIInterface::BLEND_FUNC_DST_COLOR; |
+ return command_buffer::kBlendFuncDstColor; |
case State::BLENDFUNC_INVERSE_DESTINATION_COLOR: |
- return GAPIInterface::BLEND_FUNC_INV_DST_COLOR; |
+ return command_buffer::kBlendFuncInvDstColor; |
case State::BLENDFUNC_SOURCE_ALPHA_SATUTRATE: |
- return GAPIInterface::BLEND_FUNC_SRC_ALPHA_SATUTRATE; |
+ return command_buffer::kBlendFuncSrcAlphaSaturate; |
} |
} |
// Converts values meant to represent a Blending Equation to the corresponding |
// command-buffer value. |
-// Default: BLEND_EQ_ADD. |
-GAPIInterface::BlendEq BlendEqToCB(int eq) { |
+// Default: kBlendEqAdd. |
+command_buffer::BlendEq BlendEqToCB(int eq) { |
switch (eq) { |
default: |
case State::BLEND_ADD: |
- return GAPIInterface::BLEND_EQ_ADD; |
+ return command_buffer::kBlendEqAdd; |
case State::BLEND_SUBTRACT: |
- return GAPIInterface::BLEND_EQ_SUB; |
+ return command_buffer::kBlendEqSub; |
case State::BLEND_REVERSE_SUBTRACT: |
- return GAPIInterface::BLEND_EQ_REV_SUB; |
+ return command_buffer::kBlendEqRevSub; |
case State::BLEND_MIN: |
- return GAPIInterface::BLEND_EQ_MIN; |
+ return command_buffer::kBlendEqMin; |
case State::BLEND_MAX: |
- return GAPIInterface::BLEND_EQ_MAX; |
+ return command_buffer::kBlendEqMax; |
} |
} |
@@ -265,8 +264,9 @@ |
virtual void SetStateFromTypedParam(RendererCB* renderer, |
ParamInteger* param) const { |
+ using command_buffer::cmd::SetColorWrite; |
int mask = param->value(); |
- o3d::command_buffer::set_color_write::AllColorsMask::Set(value_, mask); |
+ SetColorWrite::AllColorsMask::Set(value_, mask); |
renderer->SetWriteMask(mask); |
*dirty_ = true; |
} |
@@ -314,8 +314,8 @@ |
virtual void SetStateFromTypedParam(RendererCB* renderer, |
ParamInteger* param) const { |
- using command_buffer::set_polygon_raster::CullMode; |
- CullMode::Set(value_, CullModeToCB(param->value())); |
+ using command_buffer::cmd::SetPolygonRaster; |
+ SetPolygonRaster::CullMode::Set(value_, CullModeToCB(param->value())); |
*dirty_ = true; |
} |
private: |
@@ -336,8 +336,8 @@ |
virtual void SetStateFromTypedParam(RendererCB* renderer, |
ParamInteger* param) const { |
- using command_buffer::set_polygon_raster::FillMode; |
- FillMode::Set(value_, FillModeToCB(param->value())); |
+ using command_buffer::cmd::SetPolygonRaster; |
+ SetPolygonRaster::FillMode::Set(value_, FillModeToCB(param->value())); |
*dirty_ = true; |
} |
private: |
@@ -447,17 +447,17 @@ |
void RendererCB::StateManager::AddStateHandlers(RendererCB *renderer) { |
// Point/Line raster |
{ |
- using command_buffer::set_point_line_raster::LineSmoothEnable; |
- using command_buffer::set_point_line_raster::PointSpriteEnable; |
bool *dirty = point_line_helper_.dirty_ptr(); |
- command_buffer::cmd::SetPointLineRaster& cmd = |
- point_line_helper_.command(); |
+ using command_buffer::cmd::SetPointLineRaster; |
+ SetPointLineRaster& cmd = point_line_helper_.command(); |
renderer->AddStateHandler( |
State::kLineSmoothEnableParamName, |
- new EnableStateHandler<LineSmoothEnable>(&cmd.fixme0, dirty)); |
+ new EnableStateHandler< |
+ SetPointLineRaster::LineSmoothEnable>(&cmd.enables, dirty)); |
renderer->AddStateHandler( |
State::kPointSpriteEnableParamName, |
- new EnableStateHandler<PointSpriteEnable>(&cmd.fixme0, dirty)); |
+ new EnableStateHandler< |
+ SetPointLineRaster::PointSpriteEnable>(&cmd.enables, dirty)); |
renderer->AddStateHandler(State::kPointSizeParamName, |
new ValueStateHandler<ParamFloat>( |
&cmd.point_size, dirty)); |
@@ -466,12 +466,12 @@ |
// Polygon Raster |
{ |
bool *dirty = poly_raster_helper_.dirty_ptr(); |
- command_buffer::cmd::SetPolygonRaster& cmd = |
- poly_raster_helper_.command(); |
+ using command_buffer::cmd::SetPolygonRaster; |
+ SetPolygonRaster& cmd = poly_raster_helper_.command(); |
renderer->AddStateHandler(State::kCullModeParamName, |
- new CullModeStateHandler(&cmd.fixme0, dirty)); |
+ new CullModeStateHandler(&cmd.fill_cull, dirty)); |
renderer->AddStateHandler(State::kFillModeParamName, |
- new FillModeStateHandler(&cmd.fixme0, dirty)); |
+ new FillModeStateHandler(&cmd.fill_cull, dirty)); |
} |
// Polygon Offset |
@@ -489,16 +489,15 @@ |
// Alpha test |
{ |
- using command_buffer::set_alpha_test::Enable; |
- using command_buffer::set_alpha_test::Func; |
- command_buffer::cmd::SetAlphaTest& cmd = alpha_test_helper_.command(); |
+ using command_buffer::cmd::SetAlphaTest; |
+ SetAlphaTest& cmd = alpha_test_helper_.command(); |
bool *dirty = alpha_test_helper_.dirty_ptr(); |
renderer->AddStateHandler( |
State::kAlphaTestEnableParamName, |
- new EnableStateHandler<Enable>(&cmd.fixme0, dirty)); |
+ new EnableStateHandler<SetAlphaTest::Enable>(&cmd.func_enable, dirty)); |
renderer->AddStateHandler( |
State::kAlphaComparisonFunctionParamName, |
- new ComparisonStateHandler<Func>(&cmd.fixme0, dirty)); |
+ new ComparisonStateHandler<SetAlphaTest::Func>(&cmd.func_enable, dirty)); |
renderer->AddStateHandler( |
State::kAlphaReferenceParamName, |
new ValueStateHandler<ParamFloat>(&cmd.value, dirty)); |
@@ -506,131 +505,127 @@ |
// Depth Test |
{ |
- using command_buffer::set_depth_test::Enable; |
- using command_buffer::set_depth_test::WriteEnable; |
- using command_buffer::set_depth_test::Func; |
bool *dirty = depth_test_helper_.dirty_ptr(); |
- command_buffer::cmd::SetDepthTest& cmd = depth_test_helper_.command(); |
+ using command_buffer::cmd::SetDepthTest; |
+ SetDepthTest& cmd = depth_test_helper_.command(); |
renderer->AddStateHandler( |
State::kZWriteEnableParamName, |
- new EnableStateHandler<WriteEnable>(&cmd.fixme0, dirty)); |
+ new EnableStateHandler<SetDepthTest::WriteEnable>(&cmd.func_enable, dirty)); |
renderer->AddStateHandler( |
State::kZEnableParamName, |
- new EnableStateHandler<Enable>(&cmd.fixme0, dirty)); |
+ new EnableStateHandler<SetDepthTest::Enable>(&cmd.func_enable, dirty)); |
renderer->AddStateHandler( |
State::kZComparisonFunctionParamName, |
- new ComparisonStateHandler<Func>(&cmd.fixme0, dirty)); |
+ new ComparisonStateHandler<SetDepthTest::Func>(&cmd.func_enable, dirty)); |
} |
// Stencil Test |
{ |
- using command_buffer::set_stencil_test::Enable; |
- using command_buffer::set_stencil_test::SeparateCCW; |
- using command_buffer::set_stencil_test::WriteMask; |
- using command_buffer::set_stencil_test::CompareMask; |
- using command_buffer::set_stencil_test::ReferenceValue; |
- using command_buffer::set_stencil_test::CWFunc; |
- using command_buffer::set_stencil_test::CWPassOp; |
- using command_buffer::set_stencil_test::CWFailOp; |
- using command_buffer::set_stencil_test::CWZFailOp; |
- using command_buffer::set_stencil_test::CCWFunc; |
- using command_buffer::set_stencil_test::CCWPassOp; |
- using command_buffer::set_stencil_test::CCWFailOp; |
- using command_buffer::set_stencil_test::CCWZFailOp; |
bool *dirty = stencil_test_helper_.dirty_ptr(); |
- command_buffer::cmd::SetStencilTest& cmd = stencil_test_helper_.command(); |
+ using command_buffer::cmd::SetStencilTest; |
+ SetStencilTest& cmd = stencil_test_helper_.command(); |
renderer->AddStateHandler( |
State::kStencilEnableParamName, |
- new EnableStateHandler<Enable>(&cmd.fixme0, dirty)); |
+ new EnableStateHandler<SetStencilTest::Enable>(&cmd.stencil_args0, dirty)); |
renderer->AddStateHandler( |
State::kTwoSidedStencilEnableParamName, |
- new EnableStateHandler<SeparateCCW>(&cmd.fixme0, dirty)); |
+ new EnableStateHandler< |
+ SetStencilTest::SeparateCCW>(&cmd.stencil_args0, dirty)); |
renderer->AddStateHandler( |
State::kStencilReferenceParamName, |
- new BitFieldStateHandler<ReferenceValue>(&cmd.fixme0, dirty)); |
+ new BitFieldStateHandler< |
+ SetStencilTest::ReferenceValue>(&cmd.stencil_args0, dirty)); |
renderer->AddStateHandler( |
State::kStencilMaskParamName, |
- new BitFieldStateHandler<CompareMask>(&cmd.fixme0, dirty)); |
+ new BitFieldStateHandler< |
+ SetStencilTest::CompareMask>(&cmd.stencil_args0, dirty)); |
renderer->AddStateHandler( |
State::kStencilWriteMaskParamName, |
- new BitFieldStateHandler<WriteMask>(&cmd.fixme0, dirty)); |
+ new BitFieldStateHandler< |
+ SetStencilTest::WriteMask>(&cmd.stencil_args0, dirty)); |
renderer->AddStateHandler( |
State::kStencilComparisonFunctionParamName, |
- new ComparisonStateHandler<CWFunc>(&cmd.fixme1, dirty)); |
+ new ComparisonStateHandler< |
+ SetStencilTest::CWFunc>(&cmd.stencil_args1, dirty)); |
renderer->AddStateHandler( |
State::kStencilPassOperationParamName, |
- new StencilOpStateHandler<CWPassOp>(&cmd.fixme1, dirty)); |
+ new StencilOpStateHandler< |
+ SetStencilTest::CWPassOp>(&cmd.stencil_args1, dirty)); |
renderer->AddStateHandler( |
State::kStencilFailOperationParamName, |
- new StencilOpStateHandler<CWFailOp>(&cmd.fixme1, dirty)); |
+ new StencilOpStateHandler< |
+ SetStencilTest::CWFailOp>(&cmd.stencil_args1, dirty)); |
renderer->AddStateHandler( |
State::kStencilZFailOperationParamName, |
- new StencilOpStateHandler<CWZFailOp>(&cmd.fixme1, dirty)); |
+ new StencilOpStateHandler< |
+ SetStencilTest::CWZFailOp>(&cmd.stencil_args1, dirty)); |
renderer->AddStateHandler( |
State::kCCWStencilComparisonFunctionParamName, |
- new ComparisonStateHandler<CCWFunc>(&cmd.fixme1, dirty)); |
+ new ComparisonStateHandler< |
+ SetStencilTest::CCWFunc>(&cmd.stencil_args1, dirty)); |
renderer->AddStateHandler( |
State::kCCWStencilPassOperationParamName, |
- new StencilOpStateHandler<CCWPassOp>(&cmd.fixme1, dirty)); |
+ new StencilOpStateHandler< |
+ SetStencilTest::CCWPassOp>(&cmd.stencil_args1, dirty)); |
renderer->AddStateHandler( |
State::kCCWStencilFailOperationParamName, |
- new StencilOpStateHandler<CCWFailOp>(&cmd.fixme1, dirty)); |
+ new StencilOpStateHandler< |
+ SetStencilTest::CCWFailOp>(&cmd.stencil_args1, dirty)); |
renderer->AddStateHandler( |
State::kCCWStencilZFailOperationParamName, |
- new StencilOpStateHandler<CCWZFailOp>(&cmd.fixme1, dirty)); |
+ new StencilOpStateHandler< |
+ SetStencilTest::CCWZFailOp>(&cmd.stencil_args1, dirty)); |
} |
// Blending |
{ |
- using command_buffer::set_blending::Enable; |
- using command_buffer::set_blending::SeparateAlpha; |
- using command_buffer::set_blending::ColorEq; |
- using command_buffer::set_blending::ColorSrcFunc; |
- using command_buffer::set_blending::ColorDstFunc; |
- using command_buffer::set_blending::AlphaEq; |
- using command_buffer::set_blending::AlphaSrcFunc; |
- using command_buffer::set_blending::AlphaDstFunc; |
bool *dirty = blending_helper_.dirty_ptr(); |
- command_buffer::cmd::SetBlending& cmd = blending_helper_.command(); |
+ using command_buffer::cmd::SetBlending; |
+ SetBlending& cmd = blending_helper_.command(); |
renderer->AddStateHandler( |
State::kAlphaBlendEnableParamName, |
- new EnableStateHandler<Enable>(&cmd.fixme0, dirty)); |
+ new EnableStateHandler<SetBlending::Enable>(&cmd.blend_settings, dirty)); |
renderer->AddStateHandler( |
State::kSeparateAlphaBlendEnableParamName, |
- new EnableStateHandler<SeparateAlpha>(&cmd.fixme0, dirty)); |
+ new EnableStateHandler<SetBlending::SeparateAlpha>(&cmd.blend_settings, dirty)); |
renderer->AddStateHandler( |
State::kSourceBlendFunctionParamName, |
- new BlendFuncStateHandler<ColorSrcFunc>(&cmd.fixme0, dirty)); |
+ new BlendFuncStateHandler< |
+ SetBlending::ColorSrcFunc>(&cmd.blend_settings, dirty)); |
renderer->AddStateHandler( |
State::kDestinationBlendFunctionParamName, |
- new BlendFuncStateHandler<ColorDstFunc>(&cmd.fixme0, dirty)); |
+ new BlendFuncStateHandler< |
+ SetBlending::ColorDstFunc>(&cmd.blend_settings, dirty)); |
renderer->AddStateHandler( |
State::kBlendEquationParamName, |
- new BlendEqStateHandler<ColorEq>(&cmd.fixme0, dirty)); |
+ new BlendEqStateHandler< |
+ SetBlending::ColorEq>(&cmd.blend_settings, dirty)); |
renderer->AddStateHandler( |
State::kSourceBlendAlphaFunctionParamName, |
- new BlendFuncStateHandler<AlphaSrcFunc>(&cmd.fixme0, dirty)); |
+ new BlendFuncStateHandler< |
+ SetBlending::AlphaSrcFunc>(&cmd.blend_settings, dirty)); |
renderer->AddStateHandler( |
State::kDestinationBlendAlphaFunctionParamName, |
- new BlendFuncStateHandler<AlphaDstFunc>(&cmd.fixme0, dirty)); |
+ new BlendFuncStateHandler< |
+ SetBlending::AlphaDstFunc>(&cmd.blend_settings, dirty)); |
renderer->AddStateHandler( |
State::kBlendAlphaEquationParamName, |
- new BlendEqStateHandler<AlphaEq>(&cmd.fixme0, dirty)); |
+ new BlendEqStateHandler< |
+ SetBlending::AlphaEq>(&cmd.blend_settings, dirty)); |
} |
// Color Write |
{ |
- using command_buffer::set_color_write::DitherEnable; |
- using command_buffer::set_color_write::AllColorsMask; |
bool *dirty = color_write_helper_.dirty_ptr(); |
- command_buffer::cmd::SetColorWrite& cmd = color_write_helper_.command(); |
+ using command_buffer::cmd::SetColorWrite; |
+ SetColorWrite& cmd = color_write_helper_.command(); |
renderer->AddStateHandler( |
State::kDitherEnableParamName, |
- new EnableStateHandler<DitherEnable>(&cmd.flags, dirty)); |
+ new EnableStateHandler<SetColorWrite::DitherEnable>(&cmd.flags, dirty)); |
renderer->AddStateHandler( |
State::kColorWriteEnableParamName, |
new ColorWriteStateHandler(&cmd.flags, dirty)); |