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

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_autogen.h

Issue 11301006: automate more GL state handling (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file is auto-generated from 5 // This file is auto-generated from
6 // gpu/command_buffer/build_gles2_cmd_buffer.py 6 // gpu/command_buffer/build_gles2_cmd_buffer.py
7 // DO NOT EDIT! 7 // DO NOT EDIT!
8 8
9 // It is included by gles2_cmd_decoder.cc 9 // It is included by gles2_cmd_decoder.cc
10 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ 10 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 return error::kNoError; 87 return error::kNoError;
88 } 88 }
89 89
90 error::Error GLES2DecoderImpl::HandleBlendEquation( 90 error::Error GLES2DecoderImpl::HandleBlendEquation(
91 uint32 immediate_data_size, const gles2::BlendEquation& c) { 91 uint32 immediate_data_size, const gles2::BlendEquation& c) {
92 GLenum mode = static_cast<GLenum>(c.mode); 92 GLenum mode = static_cast<GLenum>(c.mode);
93 if (!validators_->equation.IsValid(mode)) { 93 if (!validators_->equation.IsValid(mode)) {
94 SetGLErrorInvalidEnum("glBlendEquation", mode, "mode"); 94 SetGLErrorInvalidEnum("glBlendEquation", mode, "mode");
95 return error::kNoError; 95 return error::kNoError;
96 } 96 }
97 DoBlendEquation(mode); 97 state_.blend_equation_rgb = mode;
98 state_.blend_equation_alpha = mode;
99 glBlendEquation(mode);
98 return error::kNoError; 100 return error::kNoError;
99 } 101 }
100 102
101 error::Error GLES2DecoderImpl::HandleBlendEquationSeparate( 103 error::Error GLES2DecoderImpl::HandleBlendEquationSeparate(
102 uint32 immediate_data_size, const gles2::BlendEquationSeparate& c) { 104 uint32 immediate_data_size, const gles2::BlendEquationSeparate& c) {
103 GLenum modeRGB = static_cast<GLenum>(c.modeRGB); 105 GLenum modeRGB = static_cast<GLenum>(c.modeRGB);
104 GLenum modeAlpha = static_cast<GLenum>(c.modeAlpha); 106 GLenum modeAlpha = static_cast<GLenum>(c.modeAlpha);
105 if (!validators_->equation.IsValid(modeRGB)) { 107 if (!validators_->equation.IsValid(modeRGB)) {
106 SetGLErrorInvalidEnum("glBlendEquationSeparate", modeRGB, "modeRGB"); 108 SetGLErrorInvalidEnum("glBlendEquationSeparate", modeRGB, "modeRGB");
107 return error::kNoError; 109 return error::kNoError;
(...skipping 13 matching lines...) Expand all
121 GLenum sfactor = static_cast<GLenum>(c.sfactor); 123 GLenum sfactor = static_cast<GLenum>(c.sfactor);
122 GLenum dfactor = static_cast<GLenum>(c.dfactor); 124 GLenum dfactor = static_cast<GLenum>(c.dfactor);
123 if (!validators_->src_blend_factor.IsValid(sfactor)) { 125 if (!validators_->src_blend_factor.IsValid(sfactor)) {
124 SetGLErrorInvalidEnum("glBlendFunc", sfactor, "sfactor"); 126 SetGLErrorInvalidEnum("glBlendFunc", sfactor, "sfactor");
125 return error::kNoError; 127 return error::kNoError;
126 } 128 }
127 if (!validators_->dst_blend_factor.IsValid(dfactor)) { 129 if (!validators_->dst_blend_factor.IsValid(dfactor)) {
128 SetGLErrorInvalidEnum("glBlendFunc", dfactor, "dfactor"); 130 SetGLErrorInvalidEnum("glBlendFunc", dfactor, "dfactor");
129 return error::kNoError; 131 return error::kNoError;
130 } 132 }
131 DoBlendFunc(sfactor, dfactor); 133 state_.blend_source_rgb = sfactor;
134 state_.blend_dest_rgb = dfactor;
135 state_.blend_source_alpha = sfactor;
136 state_.blend_dest_alpha = dfactor;
137 glBlendFunc(sfactor, dfactor);
132 return error::kNoError; 138 return error::kNoError;
133 } 139 }
134 140
135 error::Error GLES2DecoderImpl::HandleBlendFuncSeparate( 141 error::Error GLES2DecoderImpl::HandleBlendFuncSeparate(
136 uint32 immediate_data_size, const gles2::BlendFuncSeparate& c) { 142 uint32 immediate_data_size, const gles2::BlendFuncSeparate& c) {
137 GLenum srcRGB = static_cast<GLenum>(c.srcRGB); 143 GLenum srcRGB = static_cast<GLenum>(c.srcRGB);
138 GLenum dstRGB = static_cast<GLenum>(c.dstRGB); 144 GLenum dstRGB = static_cast<GLenum>(c.dstRGB);
139 GLenum srcAlpha = static_cast<GLenum>(c.srcAlpha); 145 GLenum srcAlpha = static_cast<GLenum>(c.srcAlpha);
140 GLenum dstAlpha = static_cast<GLenum>(c.dstAlpha); 146 GLenum dstAlpha = static_cast<GLenum>(c.dstAlpha);
141 if (!validators_->src_blend_factor.IsValid(srcRGB)) { 147 if (!validators_->src_blend_factor.IsValid(srcRGB)) {
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 error::Error GLES2DecoderImpl::HandleColorMask( 264 error::Error GLES2DecoderImpl::HandleColorMask(
259 uint32 immediate_data_size, const gles2::ColorMask& c) { 265 uint32 immediate_data_size, const gles2::ColorMask& c) {
260 GLboolean red = static_cast<GLboolean>(c.red); 266 GLboolean red = static_cast<GLboolean>(c.red);
261 GLboolean green = static_cast<GLboolean>(c.green); 267 GLboolean green = static_cast<GLboolean>(c.green);
262 GLboolean blue = static_cast<GLboolean>(c.blue); 268 GLboolean blue = static_cast<GLboolean>(c.blue);
263 GLboolean alpha = static_cast<GLboolean>(c.alpha); 269 GLboolean alpha = static_cast<GLboolean>(c.alpha);
264 state_.color_mask_red = red; 270 state_.color_mask_red = red;
265 state_.color_mask_green = green; 271 state_.color_mask_green = green;
266 state_.color_mask_blue = blue; 272 state_.color_mask_blue = blue;
267 state_.color_mask_alpha = alpha; 273 state_.color_mask_alpha = alpha;
268 clear_state_dirty_ = true;
269 return error::kNoError; 274 return error::kNoError;
270 } 275 }
271 276
272 error::Error GLES2DecoderImpl::HandleCompileShader( 277 error::Error GLES2DecoderImpl::HandleCompileShader(
273 uint32 immediate_data_size, const gles2::CompileShader& c) { 278 uint32 immediate_data_size, const gles2::CompileShader& c) {
274 GLuint shader = c.shader; 279 GLuint shader = c.shader;
275 DoCompileShader(shader); 280 DoCompileShader(shader);
276 return error::kNoError; 281 return error::kNoError;
277 } 282 }
278 283
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 } 598 }
594 state_.depth_func = func; 599 state_.depth_func = func;
595 glDepthFunc(func); 600 glDepthFunc(func);
596 return error::kNoError; 601 return error::kNoError;
597 } 602 }
598 603
599 error::Error GLES2DecoderImpl::HandleDepthMask( 604 error::Error GLES2DecoderImpl::HandleDepthMask(
600 uint32 immediate_data_size, const gles2::DepthMask& c) { 605 uint32 immediate_data_size, const gles2::DepthMask& c) {
601 GLboolean flag = static_cast<GLboolean>(c.flag); 606 GLboolean flag = static_cast<GLboolean>(c.flag);
602 state_.depth_mask = flag; 607 state_.depth_mask = flag;
603 clear_state_dirty_ = true;
604 return error::kNoError; 608 return error::kNoError;
605 } 609 }
606 610
607 error::Error GLES2DecoderImpl::HandleDepthRangef( 611 error::Error GLES2DecoderImpl::HandleDepthRangef(
608 uint32 immediate_data_size, const gles2::DepthRangef& c) { 612 uint32 immediate_data_size, const gles2::DepthRangef& c) {
609 GLclampf zNear = static_cast<GLclampf>(c.zNear); 613 GLclampf zNear = static_cast<GLclampf>(c.zNear);
610 GLclampf zFar = static_cast<GLclampf>(c.zFar); 614 GLclampf zFar = static_cast<GLclampf>(c.zFar);
611 DoDepthRangef(zNear, zFar); 615 DoDepthRangef(zNear, zFar);
612 return error::kNoError; 616 return error::kNoError;
613 } 617 }
(...skipping 893 matching lines...) Expand 10 before | Expand all | Expand 10 after
1507 1511
1508 error::Error GLES2DecoderImpl::HandleStencilFunc( 1512 error::Error GLES2DecoderImpl::HandleStencilFunc(
1509 uint32 immediate_data_size, const gles2::StencilFunc& c) { 1513 uint32 immediate_data_size, const gles2::StencilFunc& c) {
1510 GLenum func = static_cast<GLenum>(c.func); 1514 GLenum func = static_cast<GLenum>(c.func);
1511 GLint ref = static_cast<GLint>(c.ref); 1515 GLint ref = static_cast<GLint>(c.ref);
1512 GLuint mask = static_cast<GLuint>(c.mask); 1516 GLuint mask = static_cast<GLuint>(c.mask);
1513 if (!validators_->cmp_function.IsValid(func)) { 1517 if (!validators_->cmp_function.IsValid(func)) {
1514 SetGLErrorInvalidEnum("glStencilFunc", func, "func"); 1518 SetGLErrorInvalidEnum("glStencilFunc", func, "func");
1515 return error::kNoError; 1519 return error::kNoError;
1516 } 1520 }
1517 DoStencilFunc(func, ref, mask); 1521 glStencilFunc(func, ref, mask);
1518 return error::kNoError; 1522 return error::kNoError;
1519 } 1523 }
1520 1524
1521 error::Error GLES2DecoderImpl::HandleStencilFuncSeparate( 1525 error::Error GLES2DecoderImpl::HandleStencilFuncSeparate(
1522 uint32 immediate_data_size, const gles2::StencilFuncSeparate& c) { 1526 uint32 immediate_data_size, const gles2::StencilFuncSeparate& c) {
1523 GLenum face = static_cast<GLenum>(c.face); 1527 GLenum face = static_cast<GLenum>(c.face);
1524 GLenum func = static_cast<GLenum>(c.func); 1528 GLenum func = static_cast<GLenum>(c.func);
1525 GLint ref = static_cast<GLint>(c.ref); 1529 GLint ref = static_cast<GLint>(c.ref);
1526 GLuint mask = static_cast<GLuint>(c.mask); 1530 GLuint mask = static_cast<GLuint>(c.mask);
1527 if (!validators_->face_type.IsValid(face)) { 1531 if (!validators_->face_type.IsValid(face)) {
1528 SetGLErrorInvalidEnum("glStencilFuncSeparate", face, "face"); 1532 SetGLErrorInvalidEnum("glStencilFuncSeparate", face, "face");
1529 return error::kNoError; 1533 return error::kNoError;
1530 } 1534 }
1531 if (!validators_->cmp_function.IsValid(func)) { 1535 if (!validators_->cmp_function.IsValid(func)) {
1532 SetGLErrorInvalidEnum("glStencilFuncSeparate", func, "func"); 1536 SetGLErrorInvalidEnum("glStencilFuncSeparate", func, "func");
1533 return error::kNoError; 1537 return error::kNoError;
1534 } 1538 }
1535 DoStencilFuncSeparate(face, func, ref, mask); 1539 glStencilFuncSeparate(face, func, ref, mask);
1536 return error::kNoError; 1540 return error::kNoError;
1537 } 1541 }
1538 1542
1539 error::Error GLES2DecoderImpl::HandleStencilMask( 1543 error::Error GLES2DecoderImpl::HandleStencilMask(
1540 uint32 immediate_data_size, const gles2::StencilMask& c) { 1544 uint32 immediate_data_size, const gles2::StencilMask& c) {
1541 GLuint mask = static_cast<GLuint>(c.mask); 1545 GLuint mask = static_cast<GLuint>(c.mask);
1542 DoStencilMask(mask); 1546 state_.stencil_front_writemask = mask;
1547 state_.stencil_back_writemask = mask;
1548 clear_state_dirty_ = true;
1543 return error::kNoError; 1549 return error::kNoError;
1544 } 1550 }
1545 1551
1546 error::Error GLES2DecoderImpl::HandleStencilMaskSeparate( 1552 error::Error GLES2DecoderImpl::HandleStencilMaskSeparate(
1547 uint32 immediate_data_size, const gles2::StencilMaskSeparate& c) { 1553 uint32 immediate_data_size, const gles2::StencilMaskSeparate& c) {
1548 GLenum face = static_cast<GLenum>(c.face); 1554 GLenum face = static_cast<GLenum>(c.face);
1549 GLuint mask = static_cast<GLuint>(c.mask); 1555 GLuint mask = static_cast<GLuint>(c.mask);
1550 if (!validators_->face_type.IsValid(face)) { 1556 if (!validators_->face_type.IsValid(face)) {
1551 SetGLErrorInvalidEnum("glStencilMaskSeparate", face, "face"); 1557 SetGLErrorInvalidEnum("glStencilMaskSeparate", face, "face");
1552 return error::kNoError; 1558 return error::kNoError;
1553 } 1559 }
1554 DoStencilMaskSeparate(face, mask); 1560 if (face == GL_FRONT || face == GL_FRONT_AND_BACK) {
1561 state_.stencil_front_writemask = mask;
1562 }
1563 if (face == GL_BACK || face == GL_FRONT_AND_BACK) {
1564 state_.stencil_back_writemask = mask;
1565 }
1566 clear_state_dirty_ = true;
1555 return error::kNoError; 1567 return error::kNoError;
1556 } 1568 }
1557 1569
1558 error::Error GLES2DecoderImpl::HandleStencilOp( 1570 error::Error GLES2DecoderImpl::HandleStencilOp(
1559 uint32 immediate_data_size, const gles2::StencilOp& c) { 1571 uint32 immediate_data_size, const gles2::StencilOp& c) {
1560 GLenum fail = static_cast<GLenum>(c.fail); 1572 GLenum fail = static_cast<GLenum>(c.fail);
1561 GLenum zfail = static_cast<GLenum>(c.zfail); 1573 GLenum zfail = static_cast<GLenum>(c.zfail);
1562 GLenum zpass = static_cast<GLenum>(c.zpass); 1574 GLenum zpass = static_cast<GLenum>(c.zpass);
1563 if (!validators_->stencil_op.IsValid(fail)) { 1575 if (!validators_->stencil_op.IsValid(fail)) {
1564 SetGLErrorInvalidEnum("glStencilOp", fail, "fail"); 1576 SetGLErrorInvalidEnum("glStencilOp", fail, "fail");
1565 return error::kNoError; 1577 return error::kNoError;
1566 } 1578 }
1567 if (!validators_->stencil_op.IsValid(zfail)) { 1579 if (!validators_->stencil_op.IsValid(zfail)) {
1568 SetGLErrorInvalidEnum("glStencilOp", zfail, "zfail"); 1580 SetGLErrorInvalidEnum("glStencilOp", zfail, "zfail");
1569 return error::kNoError; 1581 return error::kNoError;
1570 } 1582 }
1571 if (!validators_->stencil_op.IsValid(zpass)) { 1583 if (!validators_->stencil_op.IsValid(zpass)) {
1572 SetGLErrorInvalidEnum("glStencilOp", zpass, "zpass"); 1584 SetGLErrorInvalidEnum("glStencilOp", zpass, "zpass");
1573 return error::kNoError; 1585 return error::kNoError;
1574 } 1586 }
1575 DoStencilOp(fail, zfail, zpass); 1587 state_.stencil_front_fail_op = fail;
1588 state_.stencil_front_z_fail_op = zfail;
1589 state_.stencil_front_z_pass_op = zpass;
1590 state_.stencil_back_fail_op = fail;
1591 state_.stencil_back_z_fail_op = zfail;
1592 state_.stencil_back_z_pass_op = zpass;
1593 glStencilOp(fail, zfail, zpass);
1576 return error::kNoError; 1594 return error::kNoError;
1577 } 1595 }
1578 1596
1579 error::Error GLES2DecoderImpl::HandleStencilOpSeparate( 1597 error::Error GLES2DecoderImpl::HandleStencilOpSeparate(
1580 uint32 immediate_data_size, const gles2::StencilOpSeparate& c) { 1598 uint32 immediate_data_size, const gles2::StencilOpSeparate& c) {
1581 GLenum face = static_cast<GLenum>(c.face); 1599 GLenum face = static_cast<GLenum>(c.face);
1582 GLenum fail = static_cast<GLenum>(c.fail); 1600 GLenum fail = static_cast<GLenum>(c.fail);
1583 GLenum zfail = static_cast<GLenum>(c.zfail); 1601 GLenum zfail = static_cast<GLenum>(c.zfail);
1584 GLenum zpass = static_cast<GLenum>(c.zpass); 1602 GLenum zpass = static_cast<GLenum>(c.zpass);
1585 if (!validators_->face_type.IsValid(face)) { 1603 if (!validators_->face_type.IsValid(face)) {
1586 SetGLErrorInvalidEnum("glStencilOpSeparate", face, "face"); 1604 SetGLErrorInvalidEnum("glStencilOpSeparate", face, "face");
1587 return error::kNoError; 1605 return error::kNoError;
1588 } 1606 }
1589 if (!validators_->stencil_op.IsValid(fail)) { 1607 if (!validators_->stencil_op.IsValid(fail)) {
1590 SetGLErrorInvalidEnum("glStencilOpSeparate", fail, "fail"); 1608 SetGLErrorInvalidEnum("glStencilOpSeparate", fail, "fail");
1591 return error::kNoError; 1609 return error::kNoError;
1592 } 1610 }
1593 if (!validators_->stencil_op.IsValid(zfail)) { 1611 if (!validators_->stencil_op.IsValid(zfail)) {
1594 SetGLErrorInvalidEnum("glStencilOpSeparate", zfail, "zfail"); 1612 SetGLErrorInvalidEnum("glStencilOpSeparate", zfail, "zfail");
1595 return error::kNoError; 1613 return error::kNoError;
1596 } 1614 }
1597 if (!validators_->stencil_op.IsValid(zpass)) { 1615 if (!validators_->stencil_op.IsValid(zpass)) {
1598 SetGLErrorInvalidEnum("glStencilOpSeparate", zpass, "zpass"); 1616 SetGLErrorInvalidEnum("glStencilOpSeparate", zpass, "zpass");
1599 return error::kNoError; 1617 return error::kNoError;
1600 } 1618 }
1601 DoStencilOpSeparate(face, fail, zfail, zpass); 1619 if (face == GL_FRONT || face == GL_FRONT_AND_BACK) {
1620 state_.stencil_front_fail_op = fail;
1621 state_.stencil_front_z_fail_op = zfail;
1622 state_.stencil_front_z_pass_op = zpass;
1623 }
1624 if (face == GL_BACK || face == GL_FRONT_AND_BACK) {
1625 state_.stencil_back_fail_op = fail;
1626 state_.stencil_back_z_fail_op = zfail;
1627 state_.stencil_back_z_pass_op = zpass;
1628 }
1629 glStencilOpSeparate(face, fail, zfail, zpass);
1602 return error::kNoError; 1630 return error::kNoError;
1603 } 1631 }
1604 1632
1605 error::Error GLES2DecoderImpl::HandleTexParameterf( 1633 error::Error GLES2DecoderImpl::HandleTexParameterf(
1606 uint32 immediate_data_size, const gles2::TexParameterf& c) { 1634 uint32 immediate_data_size, const gles2::TexParameterf& c) {
1607 GLenum target = static_cast<GLenum>(c.target); 1635 GLenum target = static_cast<GLenum>(c.target);
1608 GLenum pname = static_cast<GLenum>(c.pname); 1636 GLenum pname = static_cast<GLenum>(c.pname);
1609 GLfloat param = static_cast<GLfloat>(c.param); 1637 GLfloat param = static_cast<GLfloat>(c.param);
1610 if (!validators_->texture_bind_target.IsValid(target)) { 1638 if (!validators_->texture_bind_target.IsValid(target)) {
1611 SetGLErrorInvalidEnum("glTexParameterf", target, "target"); 1639 SetGLErrorInvalidEnum("glTexParameterf", target, "target");
(...skipping 1319 matching lines...) Expand 10 before | Expand all | Expand 10 after
2931 GLenum target = static_cast<GLenum>(c.target); 2959 GLenum target = static_cast<GLenum>(c.target);
2932 GLint imageId = static_cast<GLint>(c.imageId); 2960 GLint imageId = static_cast<GLint>(c.imageId);
2933 if (!validators_->texture_bind_target.IsValid(target)) { 2961 if (!validators_->texture_bind_target.IsValid(target)) {
2934 SetGLErrorInvalidEnum("glReleaseTexImage2DCHROMIUM", target, "target"); 2962 SetGLErrorInvalidEnum("glReleaseTexImage2DCHROMIUM", target, "target");
2935 return error::kNoError; 2963 return error::kNoError;
2936 } 2964 }
2937 DoReleaseTexImage2DCHROMIUM(target, imageId); 2965 DoReleaseTexImage2DCHROMIUM(target, imageId);
2938 return error::kNoError; 2966 return error::kNoError;
2939 } 2967 }
2940 2968
2969
2970 bool GLES2DecoderImpl::SetCapabilityState(GLenum cap, bool enabled) {
2971 switch (cap) {
2972 case GL_BLEND:
2973 state_.enable_flags.blend = enabled;
2974 return true;
2975 case GL_CULL_FACE:
2976 state_.enable_flags.cull_face = enabled;
2977 return true;
2978 case GL_DEPTH_TEST:
2979 if (state_.enable_flags.depth_test != enabled) {
2980 state_.enable_flags.depth_test = enabled;
2981 clear_state_dirty_ = true;
2982 }
2983 return false;
2984 case GL_DITHER:
2985 state_.enable_flags.dither = enabled;
2986 return true;
2987 case GL_POLYGON_OFFSET_FILL:
2988 state_.enable_flags.polygon_offset_fill = enabled;
2989 return true;
2990 case GL_SAMPLE_ALPHA_TO_COVERAGE:
2991 state_.enable_flags.sample_alpha_to_coverage = enabled;
2992 return true;
2993 case GL_SAMPLE_COVERAGE:
2994 state_.enable_flags.sample_coverage = enabled;
2995 return true;
2996 case GL_SCISSOR_TEST:
2997 state_.enable_flags.scissor_test = enabled;
2998 return true;
2999 case GL_STENCIL_TEST:
3000 if (state_.enable_flags.stencil_test != enabled) {
3001 state_.enable_flags.stencil_test = enabled;
3002 clear_state_dirty_ = true;
3003 }
3004 return false;
3005 default:
3006 NOTREACHED();
3007 return false;
3008 }
3009 }
3010
3011 bool GLES2DecoderImpl::DoIsEnabled(GLenum cap) {
3012 switch (cap) {
3013 case GL_BLEND:
3014 return state_.enable_flags.blend;
3015 case GL_CULL_FACE:
3016 return state_.enable_flags.cull_face;
3017 case GL_DEPTH_TEST:
3018 return state_.enable_flags.depth_test;
3019 case GL_DITHER:
3020 return state_.enable_flags.dither;
3021 case GL_POLYGON_OFFSET_FILL:
3022 return state_.enable_flags.polygon_offset_fill;
3023 case GL_SAMPLE_ALPHA_TO_COVERAGE:
3024 return state_.enable_flags.sample_alpha_to_coverage;
3025 case GL_SAMPLE_COVERAGE:
3026 return state_.enable_flags.sample_coverage;
3027 case GL_SCISSOR_TEST:
3028 return state_.enable_flags.scissor_test;
3029 case GL_STENCIL_TEST:
3030 return state_.enable_flags.stencil_test;
3031 default:
3032 NOTREACHED();
3033 return false;
3034 }
3035 }
3036
3037 bool GLES2DecoderImpl::GetState(
3038 GLenum pname, GLint* params, GLsizei* num_written) {
3039 switch (pname) {
3040 case GL_VIEWPORT:
3041 *num_written = 4;
3042 if (params) {
3043 params[0] = state_.viewport_x;
3044 params[1] = state_.viewport_y;
3045 params[2] = state_.viewport_width;
3046 params[3] = state_.viewport_height;
3047 }
3048 return true;
3049 case GL_BLEND_SRC_RGB:
3050 *num_written = 1;
3051 if (params) {
3052 params[0] = state_.blend_source_rgb;
3053 }
3054 return true;
3055 case GL_BLEND_DST_RGB:
3056 *num_written = 1;
3057 if (params) {
3058 params[0] = state_.blend_dest_rgb;
3059 }
3060 return true;
3061 case GL_BLEND_SRC_ALPHA:
3062 *num_written = 1;
3063 if (params) {
3064 params[0] = state_.blend_source_alpha;
3065 }
3066 return true;
3067 case GL_BLEND_DST_ALPHA:
3068 *num_written = 1;
3069 if (params) {
3070 params[0] = state_.blend_dest_alpha;
3071 }
3072 return true;
3073 case GL_LINE_WIDTH:
3074 *num_written = 1;
3075 if (params) {
3076 params[0] = state_.line_width;
3077 }
3078 return true;
3079 case GL_BLEND_COLOR:
3080 *num_written = 4;
3081 if (params) {
3082 params[0] = state_.blend_color_red;
3083 params[1] = state_.blend_color_green;
3084 params[2] = state_.blend_color_blue;
3085 params[3] = state_.blend_color_alpha;
3086 }
3087 return true;
3088 case GL_STENCIL_CLEAR_VALUE:
3089 *num_written = 1;
3090 if (params) {
3091 params[0] = state_.stencil_clear;
3092 }
3093 return true;
3094 case GL_COLOR_WRITEMASK:
3095 *num_written = 4;
3096 if (params) {
3097 params[0] = state_.color_mask_red;
3098 params[1] = state_.color_mask_green;
3099 params[2] = state_.color_mask_blue;
3100 params[3] = state_.color_mask_alpha;
3101 }
3102 return true;
3103 case GL_COLOR_CLEAR_VALUE:
3104 *num_written = 4;
3105 if (params) {
3106 params[0] = state_.color_clear_red;
3107 params[1] = state_.color_clear_green;
3108 params[2] = state_.color_clear_blue;
3109 params[3] = state_.color_clear_alpha;
3110 }
3111 return true;
3112 case GL_DEPTH_RANGE:
3113 *num_written = 2;
3114 if (params) {
3115 params[0] = state_.z_near;
3116 params[1] = state_.z_far;
3117 }
3118 return true;
3119 case GL_DEPTH_CLEAR_VALUE:
3120 *num_written = 1;
3121 if (params) {
3122 params[0] = state_.depth_clear;
3123 }
3124 return true;
3125 case GL_STENCIL_FAIL:
3126 *num_written = 1;
3127 if (params) {
3128 params[0] = state_.stencil_front_fail_op;
3129 }
3130 return true;
3131 case GL_STENCIL_PASS_DEPTH_FAIL:
3132 *num_written = 1;
3133 if (params) {
3134 params[0] = state_.stencil_front_z_fail_op;
3135 }
3136 return true;
3137 case GL_STENCIL_PASS_DEPTH_PASS:
3138 *num_written = 1;
3139 if (params) {
3140 params[0] = state_.stencil_front_z_pass_op;
3141 }
3142 return true;
3143 case GL_STENCIL_BACK_FAIL:
3144 *num_written = 1;
3145 if (params) {
3146 params[0] = state_.stencil_back_fail_op;
3147 }
3148 return true;
3149 case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
3150 *num_written = 1;
3151 if (params) {
3152 params[0] = state_.stencil_back_z_fail_op;
3153 }
3154 return true;
3155 case GL_STENCIL_BACK_PASS_DEPTH_PASS:
3156 *num_written = 1;
3157 if (params) {
3158 params[0] = state_.stencil_back_z_pass_op;
3159 }
3160 return true;
3161 case GL_SCISSOR_BOX:
3162 *num_written = 4;
3163 if (params) {
3164 params[0] = state_.scissor_x;
3165 params[1] = state_.scissor_y;
3166 params[2] = state_.scissor_width;
3167 params[3] = state_.scissor_height;
3168 }
3169 return true;
3170 case GL_FRONT_FACE:
3171 *num_written = 1;
3172 if (params) {
3173 params[0] = state_.front_face;
3174 }
3175 return true;
3176 case GL_SAMPLE_COVERAGE_VALUE:
3177 *num_written = 1;
3178 if (params) {
3179 params[0] = state_.sample_coverage_value;
3180 }
3181 return true;
3182 case GL_SAMPLE_COVERAGE_INVERT:
3183 *num_written = 1;
3184 if (params) {
3185 params[0] = state_.sample_coverage_invert;
3186 }
3187 return true;
3188 case GL_POLYGON_OFFSET_FACTOR:
3189 *num_written = 1;
3190 if (params) {
3191 params[0] = state_.polygon_offset_factor;
3192 }
3193 return true;
3194 case GL_POLYGON_OFFSET_UNITS:
3195 *num_written = 1;
3196 if (params) {
3197 params[0] = state_.polygon_offset_units;
3198 }
3199 return true;
3200 case GL_CULL_FACE_MODE:
3201 *num_written = 1;
3202 if (params) {
3203 params[0] = state_.cull_mode;
3204 }
3205 return true;
3206 case GL_DEPTH_FUNC:
3207 *num_written = 1;
3208 if (params) {
3209 params[0] = state_.depth_func;
3210 }
3211 return true;
3212 case GL_STENCIL_FUNC:
3213 *num_written = 1;
3214 if (params) {
3215 params[0] = state_.stencil_front_func;
3216 }
3217 return true;
3218 case GL_STENCIL_REF:
3219 *num_written = 1;
3220 if (params) {
3221 params[0] = state_.stencil_front_ref;
3222 }
3223 return true;
3224 case GL_STENCIL_VALUE_MASK:
3225 *num_written = 1;
3226 if (params) {
3227 params[0] = state_.stencil_front_mask;
3228 }
3229 return true;
3230 case GL_STENCIL_BACK_FUNC:
3231 *num_written = 1;
3232 if (params) {
3233 params[0] = state_.stencil_back_func;
3234 }
3235 return true;
3236 case GL_STENCIL_BACK_REF:
3237 *num_written = 1;
3238 if (params) {
3239 params[0] = state_.stencil_back_ref;
3240 }
3241 return true;
3242 case GL_STENCIL_BACK_VALUE_MASK:
3243 *num_written = 1;
3244 if (params) {
3245 params[0] = state_.stencil_back_mask;
3246 }
3247 return true;
3248 case GL_DEPTH_WRITEMASK:
3249 *num_written = 1;
3250 if (params) {
3251 params[0] = state_.depth_mask;
3252 }
3253 return true;
3254 case GL_BLEND_EQUATION_RGB:
3255 *num_written = 1;
3256 if (params) {
3257 params[0] = state_.blend_equation_rgb;
3258 }
3259 return true;
3260 case GL_BLEND_EQUATION_ALPHA:
3261 *num_written = 1;
3262 if (params) {
3263 params[0] = state_.blend_equation_alpha;
3264 }
3265 return true;
3266 case GL_STENCIL_WRITEMASK:
3267 *num_written = 1;
3268 if (params) {
3269 params[0] = state_.stencil_front_writemask;
3270 }
3271 return true;
3272 case GL_STENCIL_BACK_WRITEMASK:
3273 *num_written = 1;
3274 if (params) {
3275 params[0] = state_.stencil_back_writemask;
3276 }
3277 return true;
3278 case GL_BLEND:
3279 *num_written = 1;
3280 if (params) {
3281 params[0] = state_.enable_flags.blend;
3282 }
3283 return true;
3284 case GL_CULL_FACE:
3285 *num_written = 1;
3286 if (params) {
3287 params[0] = state_.enable_flags.cull_face;
3288 }
3289 return true;
3290 case GL_DEPTH_TEST:
3291 *num_written = 1;
3292 if (params) {
3293 params[0] = state_.enable_flags.depth_test;
3294 }
3295 return true;
3296 case GL_DITHER:
3297 *num_written = 1;
3298 if (params) {
3299 params[0] = state_.enable_flags.dither;
3300 }
3301 return true;
3302 case GL_POLYGON_OFFSET_FILL:
3303 *num_written = 1;
3304 if (params) {
3305 params[0] = state_.enable_flags.polygon_offset_fill;
3306 }
3307 return true;
3308 case GL_SAMPLE_ALPHA_TO_COVERAGE:
3309 *num_written = 1;
3310 if (params) {
3311 params[0] = state_.enable_flags.sample_alpha_to_coverage;
3312 }
3313 return true;
3314 case GL_SAMPLE_COVERAGE:
3315 *num_written = 1;
3316 if (params) {
3317 params[0] = state_.enable_flags.sample_coverage;
3318 }
3319 return true;
3320 case GL_SCISSOR_TEST:
3321 *num_written = 1;
3322 if (params) {
3323 params[0] = state_.enable_flags.scissor_test;
3324 }
3325 return true;
3326 case GL_STENCIL_TEST:
3327 *num_written = 1;
3328 if (params) {
3329 params[0] = state_.enable_flags.stencil_test;
3330 }
3331 return true;
3332 default:
3333 return false;
3334 }
3335 }
2941 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ 3336 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_
2942 3337
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder_unittest_0_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698