Home | History | Annotate | Download | only in service
      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
      3 // found in the LICENSE file.
      4 
      5 // This file is auto-generated from
      6 // gpu/command_buffer/build_gles2_cmd_buffer.py
      7 // DO NOT EDIT!
      8 
      9 // It is included by context_state.cc
     10 #ifndef GPU_COMMAND_BUFFER_SERVICE_CONTEXT_STATE_IMPL_AUTOGEN_H_
     11 #define GPU_COMMAND_BUFFER_SERVICE_CONTEXT_STATE_IMPL_AUTOGEN_H_
     12 
     13 ContextState::EnableFlags::EnableFlags()
     14     : blend(false),
     15       cull_face(false),
     16       depth_test(false),
     17       dither(true),
     18       polygon_offset_fill(false),
     19       sample_alpha_to_coverage(false),
     20       sample_coverage(false),
     21       scissor_test(false),
     22       stencil_test(false) {
     23 }
     24 
     25 void ContextState::Initialize() {
     26   blend_color_red = 0.0f;
     27   blend_color_green = 0.0f;
     28   blend_color_blue = 0.0f;
     29   blend_color_alpha = 0.0f;
     30   blend_equation_rgb = GL_FUNC_ADD;
     31   blend_equation_alpha = GL_FUNC_ADD;
     32   blend_source_rgb = GL_ONE;
     33   blend_dest_rgb = GL_ZERO;
     34   blend_source_alpha = GL_ONE;
     35   blend_dest_alpha = GL_ZERO;
     36   color_clear_red = 0.0f;
     37   color_clear_green = 0.0f;
     38   color_clear_blue = 0.0f;
     39   color_clear_alpha = 0.0f;
     40   depth_clear = 1.0f;
     41   stencil_clear = 0;
     42   color_mask_red = true;
     43   color_mask_green = true;
     44   color_mask_blue = true;
     45   color_mask_alpha = true;
     46   cull_mode = GL_BACK;
     47   depth_func = GL_LESS;
     48   depth_mask = true;
     49   z_near = 0.0f;
     50   z_far = 1.0f;
     51   front_face = GL_CCW;
     52   hint_generate_mipmap = GL_DONT_CARE;
     53   hint_fragment_shader_derivative = GL_DONT_CARE;
     54   line_width = 1.0f;
     55   pack_alignment = 4;
     56   unpack_alignment = 4;
     57   polygon_offset_factor = 0.0f;
     58   polygon_offset_units = 0.0f;
     59   sample_coverage_value = 1.0f;
     60   sample_coverage_invert = false;
     61   scissor_x = 0;
     62   scissor_y = 0;
     63   scissor_width = 1;
     64   scissor_height = 1;
     65   stencil_front_func = GL_ALWAYS;
     66   stencil_front_ref = 0;
     67   stencil_front_mask = 0xFFFFFFFFU;
     68   stencil_back_func = GL_ALWAYS;
     69   stencil_back_ref = 0;
     70   stencil_back_mask = 0xFFFFFFFFU;
     71   stencil_front_writemask = 0xFFFFFFFFU;
     72   stencil_back_writemask = 0xFFFFFFFFU;
     73   stencil_front_fail_op = GL_KEEP;
     74   stencil_front_z_fail_op = GL_KEEP;
     75   stencil_front_z_pass_op = GL_KEEP;
     76   stencil_back_fail_op = GL_KEEP;
     77   stencil_back_z_fail_op = GL_KEEP;
     78   stencil_back_z_pass_op = GL_KEEP;
     79   viewport_x = 0;
     80   viewport_y = 0;
     81   viewport_width = 1;
     82   viewport_height = 1;
     83 }
     84 
     85 void ContextState::InitCapabilities() const {
     86   EnableDisable(GL_BLEND, enable_flags.blend);
     87   EnableDisable(GL_CULL_FACE, enable_flags.cull_face);
     88   EnableDisable(GL_DEPTH_TEST, enable_flags.depth_test);
     89   EnableDisable(GL_DITHER, enable_flags.dither);
     90   EnableDisable(GL_POLYGON_OFFSET_FILL, enable_flags.polygon_offset_fill);
     91   EnableDisable(
     92       GL_SAMPLE_ALPHA_TO_COVERAGE, enable_flags.sample_alpha_to_coverage);
     93   EnableDisable(GL_SAMPLE_COVERAGE, enable_flags.sample_coverage);
     94   EnableDisable(GL_SCISSOR_TEST, enable_flags.scissor_test);
     95   EnableDisable(GL_STENCIL_TEST, enable_flags.stencil_test);
     96 }
     97 
     98 void ContextState::InitState() const {
     99   glBlendColor(
    100       blend_color_red, blend_color_green, blend_color_blue, blend_color_alpha);
    101   glBlendEquationSeparate(blend_equation_rgb, blend_equation_alpha);
    102   glBlendFuncSeparate(
    103       blend_source_rgb, blend_dest_rgb, blend_source_alpha, blend_dest_alpha);
    104   glClearColor(
    105       color_clear_red, color_clear_green, color_clear_blue, color_clear_alpha);
    106   glClearDepth(depth_clear);
    107   glClearStencil(stencil_clear);
    108   glColorMask(
    109       color_mask_red, color_mask_green, color_mask_blue, color_mask_alpha);
    110   glCullFace(cull_mode);
    111   glDepthFunc(depth_func);
    112   glDepthMask(depth_mask);
    113   glDepthRange(z_near, z_far);
    114   glFrontFace(front_face);
    115   glHint(GL_GENERATE_MIPMAP_HINT, hint_generate_mipmap);
    116   if (feature_info_->feature_flags().oes_standard_derivatives)
    117     glHint(
    118       GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES, hint_fragment_shader_derivative);
    119   glLineWidth(line_width);
    120   glPixelStorei(GL_PACK_ALIGNMENT, pack_alignment);
    121   glPixelStorei(GL_UNPACK_ALIGNMENT, unpack_alignment);
    122   glPolygonOffset(polygon_offset_factor, polygon_offset_units);
    123   glSampleCoverage(sample_coverage_value, sample_coverage_invert);
    124   glScissor(scissor_x, scissor_y, scissor_width, scissor_height);
    125   glStencilFuncSeparate(
    126       GL_FRONT, stencil_front_func, stencil_front_ref, stencil_front_mask);
    127   glStencilFuncSeparate(
    128       GL_BACK, stencil_back_func, stencil_back_ref, stencil_back_mask);
    129   glStencilMaskSeparate(GL_FRONT, stencil_front_writemask);
    130   glStencilMaskSeparate(GL_BACK, stencil_back_writemask);
    131   glStencilOpSeparate(
    132       GL_FRONT, stencil_front_fail_op, stencil_front_z_fail_op,
    133       stencil_front_z_pass_op);
    134   glStencilOpSeparate(
    135       GL_BACK, stencil_back_fail_op, stencil_back_z_fail_op,
    136       stencil_back_z_pass_op);
    137   glViewport(viewport_x, viewport_y, viewport_width, viewport_height);
    138 }
    139 bool ContextState::GetEnabled(GLenum cap) const {
    140   switch (cap) {
    141     case GL_BLEND:
    142       return enable_flags.blend;
    143     case GL_CULL_FACE:
    144       return enable_flags.cull_face;
    145     case GL_DEPTH_TEST:
    146       return enable_flags.depth_test;
    147     case GL_DITHER:
    148       return enable_flags.dither;
    149     case GL_POLYGON_OFFSET_FILL:
    150       return enable_flags.polygon_offset_fill;
    151     case GL_SAMPLE_ALPHA_TO_COVERAGE:
    152       return enable_flags.sample_alpha_to_coverage;
    153     case GL_SAMPLE_COVERAGE:
    154       return enable_flags.sample_coverage;
    155     case GL_SCISSOR_TEST:
    156       return enable_flags.scissor_test;
    157     case GL_STENCIL_TEST:
    158       return enable_flags.stencil_test;
    159     default:
    160       GPU_NOTREACHED();
    161       return false;
    162   }
    163 }
    164 
    165 bool ContextState::GetStateAsGLint(
    166     GLenum pname, GLint* params, GLsizei* num_written) const {
    167   switch (pname) {
    168     case GL_BLEND_COLOR:
    169       *num_written = 4;
    170       if (params) {
    171         params[0] = static_cast<GLint>(blend_color_red);
    172         params[1] = static_cast<GLint>(blend_color_green);
    173         params[2] = static_cast<GLint>(blend_color_blue);
    174         params[3] = static_cast<GLint>(blend_color_alpha);
    175       }
    176       return true;
    177     case GL_BLEND_EQUATION_RGB:
    178       *num_written = 1;
    179       if (params) {
    180         params[0] = static_cast<GLint>(blend_equation_rgb);
    181       }
    182       return true;
    183     case GL_BLEND_EQUATION_ALPHA:
    184       *num_written = 1;
    185       if (params) {
    186         params[0] = static_cast<GLint>(blend_equation_alpha);
    187       }
    188       return true;
    189     case GL_BLEND_SRC_RGB:
    190       *num_written = 1;
    191       if (params) {
    192         params[0] = static_cast<GLint>(blend_source_rgb);
    193       }
    194       return true;
    195     case GL_BLEND_DST_RGB:
    196       *num_written = 1;
    197       if (params) {
    198         params[0] = static_cast<GLint>(blend_dest_rgb);
    199       }
    200       return true;
    201     case GL_BLEND_SRC_ALPHA:
    202       *num_written = 1;
    203       if (params) {
    204         params[0] = static_cast<GLint>(blend_source_alpha);
    205       }
    206       return true;
    207     case GL_BLEND_DST_ALPHA:
    208       *num_written = 1;
    209       if (params) {
    210         params[0] = static_cast<GLint>(blend_dest_alpha);
    211       }
    212       return true;
    213     case GL_COLOR_CLEAR_VALUE:
    214       *num_written = 4;
    215       if (params) {
    216         params[0] = static_cast<GLint>(color_clear_red);
    217         params[1] = static_cast<GLint>(color_clear_green);
    218         params[2] = static_cast<GLint>(color_clear_blue);
    219         params[3] = static_cast<GLint>(color_clear_alpha);
    220       }
    221       return true;
    222     case GL_DEPTH_CLEAR_VALUE:
    223       *num_written = 1;
    224       if (params) {
    225         params[0] = static_cast<GLint>(depth_clear);
    226       }
    227       return true;
    228     case GL_STENCIL_CLEAR_VALUE:
    229       *num_written = 1;
    230       if (params) {
    231         params[0] = static_cast<GLint>(stencil_clear);
    232       }
    233       return true;
    234     case GL_COLOR_WRITEMASK:
    235       *num_written = 4;
    236       if (params) {
    237         params[0] = static_cast<GLint>(color_mask_red);
    238         params[1] = static_cast<GLint>(color_mask_green);
    239         params[2] = static_cast<GLint>(color_mask_blue);
    240         params[3] = static_cast<GLint>(color_mask_alpha);
    241       }
    242       return true;
    243     case GL_CULL_FACE_MODE:
    244       *num_written = 1;
    245       if (params) {
    246         params[0] = static_cast<GLint>(cull_mode);
    247       }
    248       return true;
    249     case GL_DEPTH_FUNC:
    250       *num_written = 1;
    251       if (params) {
    252         params[0] = static_cast<GLint>(depth_func);
    253       }
    254       return true;
    255     case GL_DEPTH_WRITEMASK:
    256       *num_written = 1;
    257       if (params) {
    258         params[0] = static_cast<GLint>(depth_mask);
    259       }
    260       return true;
    261     case GL_DEPTH_RANGE:
    262       *num_written = 2;
    263       if (params) {
    264         params[0] = static_cast<GLint>(z_near);
    265         params[1] = static_cast<GLint>(z_far);
    266       }
    267       return true;
    268     case GL_FRONT_FACE:
    269       *num_written = 1;
    270       if (params) {
    271         params[0] = static_cast<GLint>(front_face);
    272       }
    273       return true;
    274     case GL_GENERATE_MIPMAP_HINT:
    275       *num_written = 1;
    276       if (params) {
    277         params[0] = static_cast<GLint>(hint_generate_mipmap);
    278       }
    279       return true;
    280     case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES:
    281       *num_written = 1;
    282       if (params) {
    283         params[0] = static_cast<GLint>(hint_fragment_shader_derivative);
    284       }
    285       return true;
    286     case GL_LINE_WIDTH:
    287       *num_written = 1;
    288       if (params) {
    289         params[0] = static_cast<GLint>(line_width);
    290       }
    291       return true;
    292     case GL_PACK_ALIGNMENT:
    293       *num_written = 1;
    294       if (params) {
    295         params[0] = static_cast<GLint>(pack_alignment);
    296       }
    297       return true;
    298     case GL_UNPACK_ALIGNMENT:
    299       *num_written = 1;
    300       if (params) {
    301         params[0] = static_cast<GLint>(unpack_alignment);
    302       }
    303       return true;
    304     case GL_POLYGON_OFFSET_FACTOR:
    305       *num_written = 1;
    306       if (params) {
    307         params[0] = static_cast<GLint>(polygon_offset_factor);
    308       }
    309       return true;
    310     case GL_POLYGON_OFFSET_UNITS:
    311       *num_written = 1;
    312       if (params) {
    313         params[0] = static_cast<GLint>(polygon_offset_units);
    314       }
    315       return true;
    316     case GL_SAMPLE_COVERAGE_VALUE:
    317       *num_written = 1;
    318       if (params) {
    319         params[0] = static_cast<GLint>(sample_coverage_value);
    320       }
    321       return true;
    322     case GL_SAMPLE_COVERAGE_INVERT:
    323       *num_written = 1;
    324       if (params) {
    325         params[0] = static_cast<GLint>(sample_coverage_invert);
    326       }
    327       return true;
    328     case GL_SCISSOR_BOX:
    329       *num_written = 4;
    330       if (params) {
    331         params[0] = static_cast<GLint>(scissor_x);
    332         params[1] = static_cast<GLint>(scissor_y);
    333         params[2] = static_cast<GLint>(scissor_width);
    334         params[3] = static_cast<GLint>(scissor_height);
    335       }
    336       return true;
    337     case GL_STENCIL_FUNC:
    338       *num_written = 1;
    339       if (params) {
    340         params[0] = static_cast<GLint>(stencil_front_func);
    341       }
    342       return true;
    343     case GL_STENCIL_REF:
    344       *num_written = 1;
    345       if (params) {
    346         params[0] = static_cast<GLint>(stencil_front_ref);
    347       }
    348       return true;
    349     case GL_STENCIL_VALUE_MASK:
    350       *num_written = 1;
    351       if (params) {
    352         params[0] = static_cast<GLint>(stencil_front_mask);
    353       }
    354       return true;
    355     case GL_STENCIL_BACK_FUNC:
    356       *num_written = 1;
    357       if (params) {
    358         params[0] = static_cast<GLint>(stencil_back_func);
    359       }
    360       return true;
    361     case GL_STENCIL_BACK_REF:
    362       *num_written = 1;
    363       if (params) {
    364         params[0] = static_cast<GLint>(stencil_back_ref);
    365       }
    366       return true;
    367     case GL_STENCIL_BACK_VALUE_MASK:
    368       *num_written = 1;
    369       if (params) {
    370         params[0] = static_cast<GLint>(stencil_back_mask);
    371       }
    372       return true;
    373     case GL_STENCIL_WRITEMASK:
    374       *num_written = 1;
    375       if (params) {
    376         params[0] = static_cast<GLint>(stencil_front_writemask);
    377       }
    378       return true;
    379     case GL_STENCIL_BACK_WRITEMASK:
    380       *num_written = 1;
    381       if (params) {
    382         params[0] = static_cast<GLint>(stencil_back_writemask);
    383       }
    384       return true;
    385     case GL_STENCIL_FAIL:
    386       *num_written = 1;
    387       if (params) {
    388         params[0] = static_cast<GLint>(stencil_front_fail_op);
    389       }
    390       return true;
    391     case GL_STENCIL_PASS_DEPTH_FAIL:
    392       *num_written = 1;
    393       if (params) {
    394         params[0] = static_cast<GLint>(stencil_front_z_fail_op);
    395       }
    396       return true;
    397     case GL_STENCIL_PASS_DEPTH_PASS:
    398       *num_written = 1;
    399       if (params) {
    400         params[0] = static_cast<GLint>(stencil_front_z_pass_op);
    401       }
    402       return true;
    403     case GL_STENCIL_BACK_FAIL:
    404       *num_written = 1;
    405       if (params) {
    406         params[0] = static_cast<GLint>(stencil_back_fail_op);
    407       }
    408       return true;
    409     case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
    410       *num_written = 1;
    411       if (params) {
    412         params[0] = static_cast<GLint>(stencil_back_z_fail_op);
    413       }
    414       return true;
    415     case GL_STENCIL_BACK_PASS_DEPTH_PASS:
    416       *num_written = 1;
    417       if (params) {
    418         params[0] = static_cast<GLint>(stencil_back_z_pass_op);
    419       }
    420       return true;
    421     case GL_VIEWPORT:
    422       *num_written = 4;
    423       if (params) {
    424         params[0] = static_cast<GLint>(viewport_x);
    425         params[1] = static_cast<GLint>(viewport_y);
    426         params[2] = static_cast<GLint>(viewport_width);
    427         params[3] = static_cast<GLint>(viewport_height);
    428       }
    429       return true;
    430     case GL_BLEND:
    431       *num_written = 1;
    432       if (params) {
    433         params[0] = static_cast<GLint>(enable_flags.blend);
    434       }
    435       return true;
    436     case GL_CULL_FACE:
    437       *num_written = 1;
    438       if (params) {
    439         params[0] = static_cast<GLint>(enable_flags.cull_face);
    440       }
    441       return true;
    442     case GL_DEPTH_TEST:
    443       *num_written = 1;
    444       if (params) {
    445         params[0] = static_cast<GLint>(enable_flags.depth_test);
    446       }
    447       return true;
    448     case GL_DITHER:
    449       *num_written = 1;
    450       if (params) {
    451         params[0] = static_cast<GLint>(enable_flags.dither);
    452       }
    453       return true;
    454     case GL_POLYGON_OFFSET_FILL:
    455       *num_written = 1;
    456       if (params) {
    457         params[0] = static_cast<GLint>(enable_flags.polygon_offset_fill);
    458       }
    459       return true;
    460     case GL_SAMPLE_ALPHA_TO_COVERAGE:
    461       *num_written = 1;
    462       if (params) {
    463         params[0] = static_cast<GLint>(enable_flags.sample_alpha_to_coverage);
    464       }
    465       return true;
    466     case GL_SAMPLE_COVERAGE:
    467       *num_written = 1;
    468       if (params) {
    469         params[0] = static_cast<GLint>(enable_flags.sample_coverage);
    470       }
    471       return true;
    472     case GL_SCISSOR_TEST:
    473       *num_written = 1;
    474       if (params) {
    475         params[0] = static_cast<GLint>(enable_flags.scissor_test);
    476       }
    477       return true;
    478     case GL_STENCIL_TEST:
    479       *num_written = 1;
    480       if (params) {
    481         params[0] = static_cast<GLint>(enable_flags.stencil_test);
    482       }
    483       return true;
    484     default:
    485       return false;
    486   }
    487 }
    488 
    489 bool ContextState::GetStateAsGLfloat(
    490     GLenum pname, GLfloat* params, GLsizei* num_written) const {
    491   switch (pname) {
    492     case GL_BLEND_COLOR:
    493       *num_written = 4;
    494       if (params) {
    495         params[0] = static_cast<GLfloat>(blend_color_red);
    496         params[1] = static_cast<GLfloat>(blend_color_green);
    497         params[2] = static_cast<GLfloat>(blend_color_blue);
    498         params[3] = static_cast<GLfloat>(blend_color_alpha);
    499       }
    500       return true;
    501     case GL_BLEND_EQUATION_RGB:
    502       *num_written = 1;
    503       if (params) {
    504         params[0] = static_cast<GLfloat>(blend_equation_rgb);
    505       }
    506       return true;
    507     case GL_BLEND_EQUATION_ALPHA:
    508       *num_written = 1;
    509       if (params) {
    510         params[0] = static_cast<GLfloat>(blend_equation_alpha);
    511       }
    512       return true;
    513     case GL_BLEND_SRC_RGB:
    514       *num_written = 1;
    515       if (params) {
    516         params[0] = static_cast<GLfloat>(blend_source_rgb);
    517       }
    518       return true;
    519     case GL_BLEND_DST_RGB:
    520       *num_written = 1;
    521       if (params) {
    522         params[0] = static_cast<GLfloat>(blend_dest_rgb);
    523       }
    524       return true;
    525     case GL_BLEND_SRC_ALPHA:
    526       *num_written = 1;
    527       if (params) {
    528         params[0] = static_cast<GLfloat>(blend_source_alpha);
    529       }
    530       return true;
    531     case GL_BLEND_DST_ALPHA:
    532       *num_written = 1;
    533       if (params) {
    534         params[0] = static_cast<GLfloat>(blend_dest_alpha);
    535       }
    536       return true;
    537     case GL_COLOR_CLEAR_VALUE:
    538       *num_written = 4;
    539       if (params) {
    540         params[0] = static_cast<GLfloat>(color_clear_red);
    541         params[1] = static_cast<GLfloat>(color_clear_green);
    542         params[2] = static_cast<GLfloat>(color_clear_blue);
    543         params[3] = static_cast<GLfloat>(color_clear_alpha);
    544       }
    545       return true;
    546     case GL_DEPTH_CLEAR_VALUE:
    547       *num_written = 1;
    548       if (params) {
    549         params[0] = static_cast<GLfloat>(depth_clear);
    550       }
    551       return true;
    552     case GL_STENCIL_CLEAR_VALUE:
    553       *num_written = 1;
    554       if (params) {
    555         params[0] = static_cast<GLfloat>(stencil_clear);
    556       }
    557       return true;
    558     case GL_COLOR_WRITEMASK:
    559       *num_written = 4;
    560       if (params) {
    561         params[0] = static_cast<GLfloat>(color_mask_red);
    562         params[1] = static_cast<GLfloat>(color_mask_green);
    563         params[2] = static_cast<GLfloat>(color_mask_blue);
    564         params[3] = static_cast<GLfloat>(color_mask_alpha);
    565       }
    566       return true;
    567     case GL_CULL_FACE_MODE:
    568       *num_written = 1;
    569       if (params) {
    570         params[0] = static_cast<GLfloat>(cull_mode);
    571       }
    572       return true;
    573     case GL_DEPTH_FUNC:
    574       *num_written = 1;
    575       if (params) {
    576         params[0] = static_cast<GLfloat>(depth_func);
    577       }
    578       return true;
    579     case GL_DEPTH_WRITEMASK:
    580       *num_written = 1;
    581       if (params) {
    582         params[0] = static_cast<GLfloat>(depth_mask);
    583       }
    584       return true;
    585     case GL_DEPTH_RANGE:
    586       *num_written = 2;
    587       if (params) {
    588         params[0] = static_cast<GLfloat>(z_near);
    589         params[1] = static_cast<GLfloat>(z_far);
    590       }
    591       return true;
    592     case GL_FRONT_FACE:
    593       *num_written = 1;
    594       if (params) {
    595         params[0] = static_cast<GLfloat>(front_face);
    596       }
    597       return true;
    598     case GL_GENERATE_MIPMAP_HINT:
    599       *num_written = 1;
    600       if (params) {
    601         params[0] = static_cast<GLfloat>(hint_generate_mipmap);
    602       }
    603       return true;
    604     case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES:
    605       *num_written = 1;
    606       if (params) {
    607         params[0] = static_cast<GLfloat>(hint_fragment_shader_derivative);
    608       }
    609       return true;
    610     case GL_LINE_WIDTH:
    611       *num_written = 1;
    612       if (params) {
    613         params[0] = static_cast<GLfloat>(line_width);
    614       }
    615       return true;
    616     case GL_PACK_ALIGNMENT:
    617       *num_written = 1;
    618       if (params) {
    619         params[0] = static_cast<GLfloat>(pack_alignment);
    620       }
    621       return true;
    622     case GL_UNPACK_ALIGNMENT:
    623       *num_written = 1;
    624       if (params) {
    625         params[0] = static_cast<GLfloat>(unpack_alignment);
    626       }
    627       return true;
    628     case GL_POLYGON_OFFSET_FACTOR:
    629       *num_written = 1;
    630       if (params) {
    631         params[0] = static_cast<GLfloat>(polygon_offset_factor);
    632       }
    633       return true;
    634     case GL_POLYGON_OFFSET_UNITS:
    635       *num_written = 1;
    636       if (params) {
    637         params[0] = static_cast<GLfloat>(polygon_offset_units);
    638       }
    639       return true;
    640     case GL_SAMPLE_COVERAGE_VALUE:
    641       *num_written = 1;
    642       if (params) {
    643         params[0] = static_cast<GLfloat>(sample_coverage_value);
    644       }
    645       return true;
    646     case GL_SAMPLE_COVERAGE_INVERT:
    647       *num_written = 1;
    648       if (params) {
    649         params[0] = static_cast<GLfloat>(sample_coverage_invert);
    650       }
    651       return true;
    652     case GL_SCISSOR_BOX:
    653       *num_written = 4;
    654       if (params) {
    655         params[0] = static_cast<GLfloat>(scissor_x);
    656         params[1] = static_cast<GLfloat>(scissor_y);
    657         params[2] = static_cast<GLfloat>(scissor_width);
    658         params[3] = static_cast<GLfloat>(scissor_height);
    659       }
    660       return true;
    661     case GL_STENCIL_FUNC:
    662       *num_written = 1;
    663       if (params) {
    664         params[0] = static_cast<GLfloat>(stencil_front_func);
    665       }
    666       return true;
    667     case GL_STENCIL_REF:
    668       *num_written = 1;
    669       if (params) {
    670         params[0] = static_cast<GLfloat>(stencil_front_ref);
    671       }
    672       return true;
    673     case GL_STENCIL_VALUE_MASK:
    674       *num_written = 1;
    675       if (params) {
    676         params[0] = static_cast<GLfloat>(stencil_front_mask);
    677       }
    678       return true;
    679     case GL_STENCIL_BACK_FUNC:
    680       *num_written = 1;
    681       if (params) {
    682         params[0] = static_cast<GLfloat>(stencil_back_func);
    683       }
    684       return true;
    685     case GL_STENCIL_BACK_REF:
    686       *num_written = 1;
    687       if (params) {
    688         params[0] = static_cast<GLfloat>(stencil_back_ref);
    689       }
    690       return true;
    691     case GL_STENCIL_BACK_VALUE_MASK:
    692       *num_written = 1;
    693       if (params) {
    694         params[0] = static_cast<GLfloat>(stencil_back_mask);
    695       }
    696       return true;
    697     case GL_STENCIL_WRITEMASK:
    698       *num_written = 1;
    699       if (params) {
    700         params[0] = static_cast<GLfloat>(stencil_front_writemask);
    701       }
    702       return true;
    703     case GL_STENCIL_BACK_WRITEMASK:
    704       *num_written = 1;
    705       if (params) {
    706         params[0] = static_cast<GLfloat>(stencil_back_writemask);
    707       }
    708       return true;
    709     case GL_STENCIL_FAIL:
    710       *num_written = 1;
    711       if (params) {
    712         params[0] = static_cast<GLfloat>(stencil_front_fail_op);
    713       }
    714       return true;
    715     case GL_STENCIL_PASS_DEPTH_FAIL:
    716       *num_written = 1;
    717       if (params) {
    718         params[0] = static_cast<GLfloat>(stencil_front_z_fail_op);
    719       }
    720       return true;
    721     case GL_STENCIL_PASS_DEPTH_PASS:
    722       *num_written = 1;
    723       if (params) {
    724         params[0] = static_cast<GLfloat>(stencil_front_z_pass_op);
    725       }
    726       return true;
    727     case GL_STENCIL_BACK_FAIL:
    728       *num_written = 1;
    729       if (params) {
    730         params[0] = static_cast<GLfloat>(stencil_back_fail_op);
    731       }
    732       return true;
    733     case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
    734       *num_written = 1;
    735       if (params) {
    736         params[0] = static_cast<GLfloat>(stencil_back_z_fail_op);
    737       }
    738       return true;
    739     case GL_STENCIL_BACK_PASS_DEPTH_PASS:
    740       *num_written = 1;
    741       if (params) {
    742         params[0] = static_cast<GLfloat>(stencil_back_z_pass_op);
    743       }
    744       return true;
    745     case GL_VIEWPORT:
    746       *num_written = 4;
    747       if (params) {
    748         params[0] = static_cast<GLfloat>(viewport_x);
    749         params[1] = static_cast<GLfloat>(viewport_y);
    750         params[2] = static_cast<GLfloat>(viewport_width);
    751         params[3] = static_cast<GLfloat>(viewport_height);
    752       }
    753       return true;
    754     case GL_BLEND:
    755       *num_written = 1;
    756       if (params) {
    757         params[0] = static_cast<GLfloat>(enable_flags.blend);
    758       }
    759       return true;
    760     case GL_CULL_FACE:
    761       *num_written = 1;
    762       if (params) {
    763         params[0] = static_cast<GLfloat>(enable_flags.cull_face);
    764       }
    765       return true;
    766     case GL_DEPTH_TEST:
    767       *num_written = 1;
    768       if (params) {
    769         params[0] = static_cast<GLfloat>(enable_flags.depth_test);
    770       }
    771       return true;
    772     case GL_DITHER:
    773       *num_written = 1;
    774       if (params) {
    775         params[0] = static_cast<GLfloat>(enable_flags.dither);
    776       }
    777       return true;
    778     case GL_POLYGON_OFFSET_FILL:
    779       *num_written = 1;
    780       if (params) {
    781         params[0] = static_cast<GLfloat>(enable_flags.polygon_offset_fill);
    782       }
    783       return true;
    784     case GL_SAMPLE_ALPHA_TO_COVERAGE:
    785       *num_written = 1;
    786       if (params) {
    787         params[0] =
    788             static_cast<GLfloat>(enable_flags.sample_alpha_to_coverage);
    789       }
    790       return true;
    791     case GL_SAMPLE_COVERAGE:
    792       *num_written = 1;
    793       if (params) {
    794         params[0] = static_cast<GLfloat>(enable_flags.sample_coverage);
    795       }
    796       return true;
    797     case GL_SCISSOR_TEST:
    798       *num_written = 1;
    799       if (params) {
    800         params[0] = static_cast<GLfloat>(enable_flags.scissor_test);
    801       }
    802       return true;
    803     case GL_STENCIL_TEST:
    804       *num_written = 1;
    805       if (params) {
    806         params[0] = static_cast<GLfloat>(enable_flags.stencil_test);
    807       }
    808       return true;
    809     default:
    810       return false;
    811   }
    812 }
    813 #endif  // GPU_COMMAND_BUFFER_SERVICE_CONTEXT_STATE_IMPL_AUTOGEN_H_
    814 
    815