Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2363)

Unified Diff: core/cross/command_buffer/states_cb.cc

Issue 212018: Change command buffer client code to use structures.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/o3d/
Patch Set: '' Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « core/cross/command_buffer/states_cb.h ('k') | core/cross/command_buffer/stream_bank_cb.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/cross/command_buffer/states_cb.cc
===================================================================
--- core/cross/command_buffer/states_cb.cc (revision 26638)
+++ core/cross/command_buffer/states_cb.cc (working copy)
@@ -441,31 +441,6 @@
bool *dirty_;
};
-// A handler that sets the blending color.
-// Parameters:
-// args: a pointer to the arguments.
-// dirty: a pointer to the dirty bit.
-class BlendColorStateHandler : public TypedStateHandler<ParamFloat4> {
- public:
- BlendColorStateHandler(CommandBufferEntry *args, bool *dirty)
- : args_(args),
- dirty_(dirty) {
- }
-
- virtual void SetStateFromTypedParam(RendererCB* renderer,
- ParamFloat4* param) const {
- Float4 value = param->value();
- args_[0].value_float = value[0];
- args_[1].value_float = value[1];
- args_[2].value_float = value[2];
- args_[3].value_float = value[3];
- *dirty_ = true;
- }
- private:
- CommandBufferEntry *args_;
- bool *dirty_;
-};
-
// Adds all the state handlers for all the states. The list of handlers must
// match in names and types the list in Renderer::AddDefaultStates()
// (in renderer.cc).
@@ -475,52 +450,58 @@
using command_buffer::set_point_line_raster::LineSmoothEnable;
using command_buffer::set_point_line_raster::PointSpriteEnable;
bool *dirty = point_line_helper_.dirty_ptr();
- uint32 *arg0 = &(point_line_helper_.args()[0].value_uint32);
- float *arg1 = &(point_line_helper_.args()[1].value_float);
+ command_buffer::cmd::SetPointLineRaster& cmd =
+ point_line_helper_.command();
renderer->AddStateHandler(
State::kLineSmoothEnableParamName,
- new EnableStateHandler<LineSmoothEnable>(arg0, dirty));
+ new EnableStateHandler<LineSmoothEnable>(&cmd.fixme0, dirty));
renderer->AddStateHandler(
State::kPointSpriteEnableParamName,
- new EnableStateHandler<PointSpriteEnable>(arg0, dirty));
+ new EnableStateHandler<PointSpriteEnable>(&cmd.fixme0, dirty));
renderer->AddStateHandler(State::kPointSizeParamName,
- new ValueStateHandler<ParamFloat>(arg1, dirty));
+ new ValueStateHandler<ParamFloat>(
+ &cmd.point_size, dirty));
}
// Polygon Raster
{
bool *dirty = poly_raster_helper_.dirty_ptr();
- uint32 *arg = &(poly_raster_helper_.args()[0].value_uint32);
+ command_buffer::cmd::SetPolygonRaster& cmd =
+ poly_raster_helper_.command();
renderer->AddStateHandler(State::kCullModeParamName,
- new CullModeStateHandler(arg, dirty));
+ new CullModeStateHandler(&cmd.fixme0, dirty));
renderer->AddStateHandler(State::kFillModeParamName,
- new FillModeStateHandler(arg, dirty));
+ new FillModeStateHandler(&cmd.fixme0, dirty));
}
// Polygon Offset
{
bool *dirty = poly_offset_helper_.dirty_ptr();
- float *arg0 = &(poly_offset_helper_.args()[0].value_float);
- float *arg1 = &(poly_offset_helper_.args()[1].value_float);
- renderer->AddStateHandler(State::kPolygonOffset1ParamName,
- new ValueStateHandler<ParamFloat>(arg0, dirty));
- renderer->AddStateHandler(State::kPolygonOffset2ParamName,
- new ValueStateHandler<ParamFloat>(arg1, dirty));
+ command_buffer::cmd::SetPolygonOffset& cmd =
+ poly_offset_helper_.command();
+ renderer->AddStateHandler(
+ State::kPolygonOffset1ParamName,
+ new ValueStateHandler<ParamFloat>(&cmd.slope_factor, dirty));
+ renderer->AddStateHandler(
+ State::kPolygonOffset2ParamName,
+ new ValueStateHandler<ParamFloat>(&cmd.units, dirty));
}
// 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();
bool *dirty = alpha_test_helper_.dirty_ptr();
- uint32 *arg0 = &(alpha_test_helper_.args()[0].value_uint32);
- float *arg1 = &(alpha_test_helper_.args()[1].value_float);
- renderer->AddStateHandler(State::kAlphaTestEnableParamName,
- new EnableStateHandler<Enable>(arg0, dirty));
- renderer->AddStateHandler(State::kAlphaComparisonFunctionParamName,
- new ComparisonStateHandler<Func>(arg0, dirty));
- renderer->AddStateHandler(State::kAlphaReferenceParamName,
- new ValueStateHandler<ParamFloat>(arg1, dirty));
+ renderer->AddStateHandler(
+ State::kAlphaTestEnableParamName,
+ new EnableStateHandler<Enable>(&cmd.fixme0, dirty));
+ renderer->AddStateHandler(
+ State::kAlphaComparisonFunctionParamName,
+ new ComparisonStateHandler<Func>(&cmd.fixme0, dirty));
+ renderer->AddStateHandler(
+ State::kAlphaReferenceParamName,
+ new ValueStateHandler<ParamFloat>(&cmd.value, dirty));
}
// Depth Test
@@ -529,13 +510,16 @@
using command_buffer::set_depth_test::WriteEnable;
using command_buffer::set_depth_test::Func;
bool *dirty = depth_test_helper_.dirty_ptr();
- uint32 *arg = &(depth_test_helper_.args()[0].value_uint32);
- renderer->AddStateHandler(State::kZWriteEnableParamName,
- new EnableStateHandler<WriteEnable>(arg, dirty));
- renderer->AddStateHandler(State::kZEnableParamName,
- new EnableStateHandler<Enable>(arg, dirty));
- renderer->AddStateHandler(State::kZComparisonFunctionParamName,
- new ComparisonStateHandler<Func>(arg, dirty));
+ command_buffer::cmd::SetDepthTest& cmd = depth_test_helper_.command();
+ renderer->AddStateHandler(
+ State::kZWriteEnableParamName,
+ new EnableStateHandler<WriteEnable>(&cmd.fixme0, dirty));
+ renderer->AddStateHandler(
+ State::kZEnableParamName,
+ new EnableStateHandler<Enable>(&cmd.fixme0, dirty));
+ renderer->AddStateHandler(
+ State::kZComparisonFunctionParamName,
+ new ComparisonStateHandler<Func>(&cmd.fixme0, dirty));
}
// Stencil Test
@@ -554,42 +538,49 @@
using command_buffer::set_stencil_test::CCWFailOp;
using command_buffer::set_stencil_test::CCWZFailOp;
bool *dirty = stencil_test_helper_.dirty_ptr();
- uint32 *arg0 = &(stencil_test_helper_.args()[0].value_uint32);
- uint32 *arg1 = &(stencil_test_helper_.args()[1].value_uint32);
- renderer->AddStateHandler(State::kStencilEnableParamName,
- new EnableStateHandler<Enable>(arg0, dirty));
- renderer->AddStateHandler(State::kTwoSidedStencilEnableParamName,
- new EnableStateHandler<SeparateCCW>(arg0, dirty));
+ command_buffer::cmd::SetStencilTest& cmd = stencil_test_helper_.command();
renderer->AddStateHandler(
+ State::kStencilEnableParamName,
+ new EnableStateHandler<Enable>(&cmd.fixme0, dirty));
+ renderer->AddStateHandler(
+ State::kTwoSidedStencilEnableParamName,
+ new EnableStateHandler<SeparateCCW>(&cmd.fixme0, dirty));
+ renderer->AddStateHandler(
State::kStencilReferenceParamName,
- new BitFieldStateHandler<ReferenceValue>(arg0, dirty));
+ new BitFieldStateHandler<ReferenceValue>(&cmd.fixme0, dirty));
renderer->AddStateHandler(
State::kStencilMaskParamName,
- new BitFieldStateHandler<CompareMask>(arg0, dirty));
- renderer->AddStateHandler(State::kStencilWriteMaskParamName,
- new BitFieldStateHandler<WriteMask>(arg0, dirty));
+ new BitFieldStateHandler<CompareMask>(&cmd.fixme0, dirty));
+ renderer->AddStateHandler(
+ State::kStencilWriteMaskParamName,
+ new BitFieldStateHandler<WriteMask>(&cmd.fixme0, dirty));
- renderer->AddStateHandler(State::kStencilComparisonFunctionParamName,
- new ComparisonStateHandler<CWFunc>(arg1, dirty));
- renderer->AddStateHandler(State::kStencilPassOperationParamName,
- new StencilOpStateHandler<CWPassOp>(arg1, dirty));
- renderer->AddStateHandler(State::kStencilFailOperationParamName,
- new StencilOpStateHandler<CWFailOp>(arg1, dirty));
renderer->AddStateHandler(
+ State::kStencilComparisonFunctionParamName,
+ new ComparisonStateHandler<CWFunc>(&cmd.fixme1, dirty));
+ renderer->AddStateHandler(
+ State::kStencilPassOperationParamName,
+ new StencilOpStateHandler<CWPassOp>(&cmd.fixme1, dirty));
+ renderer->AddStateHandler(
+ State::kStencilFailOperationParamName,
+ new StencilOpStateHandler<CWFailOp>(&cmd.fixme1, dirty));
+ renderer->AddStateHandler(
State::kStencilZFailOperationParamName,
- new StencilOpStateHandler<CWZFailOp>(arg1, dirty));
+ new StencilOpStateHandler<CWZFailOp>(&cmd.fixme1, dirty));
- renderer->AddStateHandler(State::kCCWStencilComparisonFunctionParamName,
- new ComparisonStateHandler<CCWFunc>(arg1, dirty));
renderer->AddStateHandler(
+ State::kCCWStencilComparisonFunctionParamName,
+ new ComparisonStateHandler<CCWFunc>(&cmd.fixme1, dirty));
+
+ renderer->AddStateHandler(
State::kCCWStencilPassOperationParamName,
- new StencilOpStateHandler<CCWPassOp>(arg1, dirty));
+ new StencilOpStateHandler<CCWPassOp>(&cmd.fixme1, dirty));
renderer->AddStateHandler(
State::kCCWStencilFailOperationParamName,
- new StencilOpStateHandler<CCWFailOp>(arg1, dirty));
+ new StencilOpStateHandler<CCWFailOp>(&cmd.fixme1, dirty));
renderer->AddStateHandler(
State::kCCWStencilZFailOperationParamName,
- new StencilOpStateHandler<CCWZFailOp>(arg1, dirty));
+ new StencilOpStateHandler<CCWZFailOp>(&cmd.fixme1, dirty));
}
// Blending
@@ -603,29 +594,32 @@
using command_buffer::set_blending::AlphaSrcFunc;
using command_buffer::set_blending::AlphaDstFunc;
bool *dirty = blending_helper_.dirty_ptr();
- uint32 *arg = &(blending_helper_.args()[0].value_uint32);
- renderer->AddStateHandler(State::kAlphaBlendEnableParamName,
- new EnableStateHandler<Enable>(arg, dirty));
+ command_buffer::cmd::SetBlending& cmd = blending_helper_.command();
renderer->AddStateHandler(
+ State::kAlphaBlendEnableParamName,
+ new EnableStateHandler<Enable>(&cmd.fixme0, dirty));
+ renderer->AddStateHandler(
State::kSeparateAlphaBlendEnableParamName,
- new EnableStateHandler<SeparateAlpha>(arg, dirty));
+ new EnableStateHandler<SeparateAlpha>(&cmd.fixme0, dirty));
renderer->AddStateHandler(
State::kSourceBlendFunctionParamName,
- new BlendFuncStateHandler<ColorSrcFunc>(arg, dirty));
+ new BlendFuncStateHandler<ColorSrcFunc>(&cmd.fixme0, dirty));
renderer->AddStateHandler(
State::kDestinationBlendFunctionParamName,
- new BlendFuncStateHandler<ColorDstFunc>(arg, dirty));
- renderer->AddStateHandler(State::kBlendEquationParamName,
- new BlendEqStateHandler<ColorEq>(arg, dirty));
+ new BlendFuncStateHandler<ColorDstFunc>(&cmd.fixme0, dirty));
renderer->AddStateHandler(
+ State::kBlendEquationParamName,
+ new BlendEqStateHandler<ColorEq>(&cmd.fixme0, dirty));
+ renderer->AddStateHandler(
State::kSourceBlendAlphaFunctionParamName,
- new BlendFuncStateHandler<AlphaSrcFunc>(arg, dirty));
+ new BlendFuncStateHandler<AlphaSrcFunc>(&cmd.fixme0, dirty));
renderer->AddStateHandler(
State::kDestinationBlendAlphaFunctionParamName,
- new BlendFuncStateHandler<AlphaDstFunc>(arg, dirty));
- renderer->AddStateHandler(State::kBlendAlphaEquationParamName,
- new BlendEqStateHandler<AlphaEq>(arg, dirty));
+ new BlendFuncStateHandler<AlphaDstFunc>(&cmd.fixme0, dirty));
+ renderer->AddStateHandler(
+ State::kBlendAlphaEquationParamName,
+ new BlendEqStateHandler<AlphaEq>(&cmd.fixme0, dirty));
}
// Color Write
@@ -633,12 +627,13 @@
using command_buffer::set_color_write::DitherEnable;
using command_buffer::set_color_write::AllColorsMask;
bool *dirty = color_write_helper_.dirty_ptr();
- uint32 *arg = &(color_write_helper_.args()[0].value_uint32);
- renderer->AddStateHandler(State::kDitherEnableParamName,
- new EnableStateHandler<DitherEnable>(arg, dirty));
+ command_buffer::cmd::SetColorWrite& cmd = color_write_helper_.command();
renderer->AddStateHandler(
+ State::kDitherEnableParamName,
+ new EnableStateHandler<DitherEnable>(&cmd.flags, dirty));
+ renderer->AddStateHandler(
State::kColorWriteEnableParamName,
- new ColorWriteStateHandler(arg, dirty));
+ new ColorWriteStateHandler(&cmd.flags, dirty));
}
}
@@ -651,7 +646,6 @@
stencil_test_helper_.Validate(helper);
color_write_helper_.Validate(helper);
blending_helper_.Validate(helper);
- blending_color_helper_.Validate(helper);
}
} // namespace o3d
« no previous file with comments | « core/cross/command_buffer/states_cb.h ('k') | core/cross/command_buffer/stream_bank_cb.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698