14ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file is auto-generated from 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// gpu/command_buffer/build_gles2_cmd_buffer.py 7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// It's formatted by clang-format using chromium coding style: 8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// clang-format -i -style=chromium filename 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// DO NOT EDIT! 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// It is included by context_state.cc 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef GPU_COMMAND_BUFFER_SERVICE_CONTEXT_STATE_IMPL_AUTOGEN_H_ 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define GPU_COMMAND_BUFFER_SERVICE_CONTEXT_STATE_IMPL_AUTOGEN_H_ 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ContextState::EnableFlags::EnableFlags() 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : blend(false), 17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_blend(false), 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cull_face(false), 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_cull_face(false), 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) depth_test(false), 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_depth_test(false), 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dither(true), 23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_dither(true), 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) polygon_offset_fill(false), 25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_polygon_offset_fill(false), 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sample_alpha_to_coverage(false), 27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_sample_alpha_to_coverage(false), 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sample_coverage(false), 29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_sample_coverage(false), 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scissor_test(false), 31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_scissor_test(false), 32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) stencil_test(false), 33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_stencil_test(false) { 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ContextState::Initialize() { 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) blend_color_red = 0.0f; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) blend_color_green = 0.0f; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) blend_color_blue = 0.0f; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) blend_color_alpha = 0.0f; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) blend_equation_rgb = GL_FUNC_ADD; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) blend_equation_alpha = GL_FUNC_ADD; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) blend_source_rgb = GL_ONE; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) blend_dest_rgb = GL_ZERO; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) blend_source_alpha = GL_ONE; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) blend_dest_alpha = GL_ZERO; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) color_clear_red = 0.0f; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) color_clear_green = 0.0f; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) color_clear_blue = 0.0f; 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) color_clear_alpha = 0.0f; 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) depth_clear = 1.0f; 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_clear = 0; 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) color_mask_red = true; 54010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_color_mask_red = true; 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) color_mask_green = true; 56010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_color_mask_green = true; 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) color_mask_blue = true; 58010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_color_mask_blue = true; 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) color_mask_alpha = true; 60010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_color_mask_alpha = true; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cull_mode = GL_BACK; 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) depth_func = GL_LESS; 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) depth_mask = true; 64010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_depth_mask = true; 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) z_near = 0.0f; 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) z_far = 1.0f; 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) front_face = GL_CCW; 68868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) hint_generate_mipmap = GL_DONT_CARE; 69868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) hint_fragment_shader_derivative = GL_DONT_CARE; 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) line_width = 1.0f; 711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[0] = 1.0f; 721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[1] = 0.0f; 731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[2] = 0.0f; 741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[3] = 0.0f; 751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[4] = 0.0f; 761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[5] = 1.0f; 771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[6] = 0.0f; 781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[7] = 0.0f; 791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[8] = 0.0f; 801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[9] = 0.0f; 811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[10] = 1.0f; 821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[11] = 0.0f; 831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[12] = 0.0f; 841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[13] = 0.0f; 851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[14] = 0.0f; 861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix[15] = 1.0f; 871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[0] = 1.0f; 881320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[1] = 0.0f; 891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[2] = 0.0f; 901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[3] = 0.0f; 911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[4] = 0.0f; 921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[5] = 1.0f; 931320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[6] = 0.0f; 941320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[7] = 0.0f; 951320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[8] = 0.0f; 961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[9] = 0.0f; 971320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[10] = 1.0f; 981320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[11] = 0.0f; 991320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[12] = 0.0f; 1001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[13] = 0.0f; 1011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[14] = 0.0f; 1021320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix[15] = 1.0f; 103868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) pack_alignment = 4; 104868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) unpack_alignment = 4; 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) polygon_offset_factor = 0.0f; 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) polygon_offset_units = 0.0f; 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sample_coverage_value = 1.0f; 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sample_coverage_invert = false; 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scissor_x = 0; 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scissor_y = 0; 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scissor_width = 1; 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scissor_height = 1; 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_front_func = GL_ALWAYS; 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_front_ref = 0; 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_front_mask = 0xFFFFFFFFU; 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_back_func = GL_ALWAYS; 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_back_ref = 0; 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_back_mask = 0xFFFFFFFFU; 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_front_writemask = 0xFFFFFFFFU; 120010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_stencil_front_writemask = 0xFFFFFFFFU; 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_back_writemask = 0xFFFFFFFFU; 122010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_stencil_back_writemask = 0xFFFFFFFFU; 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_front_fail_op = GL_KEEP; 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_front_z_fail_op = GL_KEEP; 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_front_z_pass_op = GL_KEEP; 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_back_fail_op = GL_KEEP; 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_back_z_fail_op = GL_KEEP; 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stencil_back_z_pass_op = GL_KEEP; 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) viewport_x = 0; 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) viewport_y = 0; 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) viewport_width = 1; 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) viewport_height = 1; 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochvoid ContextState::InitCapabilities(const ContextState* prev_state) const { 136c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if (prev_state) { 137010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if (prev_state->enable_flags.cached_blend != enable_flags.cached_blend) 138010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_BLEND, enable_flags.cached_blend); 139010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if (prev_state->enable_flags.cached_cull_face != 140010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) enable_flags.cached_cull_face) 141010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_CULL_FACE, enable_flags.cached_cull_face); 142010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if (prev_state->enable_flags.cached_depth_test != 143010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) enable_flags.cached_depth_test) 144010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_DEPTH_TEST, enable_flags.cached_depth_test); 145010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if (prev_state->enable_flags.cached_dither != enable_flags.cached_dither) 146010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_DITHER, enable_flags.cached_dither); 147010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if (prev_state->enable_flags.cached_polygon_offset_fill != 148010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) enable_flags.cached_polygon_offset_fill) 149010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_POLYGON_OFFSET_FILL, 150010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) enable_flags.cached_polygon_offset_fill); 151010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if (prev_state->enable_flags.cached_sample_alpha_to_coverage != 152010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) enable_flags.cached_sample_alpha_to_coverage) 153c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch EnableDisable(GL_SAMPLE_ALPHA_TO_COVERAGE, 154010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) enable_flags.cached_sample_alpha_to_coverage); 155010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if (prev_state->enable_flags.cached_sample_coverage != 156010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) enable_flags.cached_sample_coverage) 157010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_SAMPLE_COVERAGE, enable_flags.cached_sample_coverage); 158010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if (prev_state->enable_flags.cached_scissor_test != 159010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) enable_flags.cached_scissor_test) 160010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_SCISSOR_TEST, enable_flags.cached_scissor_test); 161010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if (prev_state->enable_flags.cached_stencil_test != 162010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) enable_flags.cached_stencil_test) 163010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_STENCIL_TEST, enable_flags.cached_stencil_test); 164c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch } else { 165010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_BLEND, enable_flags.cached_blend); 166010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_CULL_FACE, enable_flags.cached_cull_face); 167010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_DEPTH_TEST, enable_flags.cached_depth_test); 168010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_DITHER, enable_flags.cached_dither); 169010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_POLYGON_OFFSET_FILL, 170010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) enable_flags.cached_polygon_offset_fill); 171c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch EnableDisable(GL_SAMPLE_ALPHA_TO_COVERAGE, 172010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) enable_flags.cached_sample_alpha_to_coverage); 173010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_SAMPLE_COVERAGE, enable_flags.cached_sample_coverage); 174010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_SCISSOR_TEST, enable_flags.cached_scissor_test); 175010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EnableDisable(GL_STENCIL_TEST, enable_flags.cached_stencil_test); 176c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch } 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 179c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochvoid ContextState::InitState(const ContextState* prev_state) const { 180c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if (prev_state) { 181c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((blend_color_red != prev_state->blend_color_red) || 182c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (blend_color_green != prev_state->blend_color_green) || 183c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (blend_color_blue != prev_state->blend_color_blue) || 184c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (blend_color_alpha != prev_state->blend_color_alpha)) 185c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glBlendColor(blend_color_red, 186c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blend_color_green, 187c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blend_color_blue, 188c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blend_color_alpha); 189c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((blend_equation_rgb != prev_state->blend_equation_rgb) || 190c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (blend_equation_alpha != prev_state->blend_equation_alpha)) 191c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glBlendEquationSeparate(blend_equation_rgb, blend_equation_alpha); 192c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((blend_source_rgb != prev_state->blend_source_rgb) || 193c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (blend_dest_rgb != prev_state->blend_dest_rgb) || 194c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (blend_source_alpha != prev_state->blend_source_alpha) || 195c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (blend_dest_alpha != prev_state->blend_dest_alpha)) 196c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glBlendFuncSeparate(blend_source_rgb, 197c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blend_dest_rgb, 198c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blend_source_alpha, 199c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blend_dest_alpha); 200c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((color_clear_red != prev_state->color_clear_red) || 201c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (color_clear_green != prev_state->color_clear_green) || 202c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (color_clear_blue != prev_state->color_clear_blue) || 203c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (color_clear_alpha != prev_state->color_clear_alpha)) 204c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glClearColor(color_clear_red, 205c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch color_clear_green, 206c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch color_clear_blue, 207c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch color_clear_alpha); 208c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((depth_clear != prev_state->depth_clear)) 209c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glClearDepth(depth_clear); 210c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((stencil_clear != prev_state->stencil_clear)) 211c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glClearStencil(stencil_clear); 212010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if ((cached_color_mask_red != prev_state->cached_color_mask_red) || 213010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) (cached_color_mask_green != prev_state->cached_color_mask_green) || 214010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) (cached_color_mask_blue != prev_state->cached_color_mask_blue) || 215010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) (cached_color_mask_alpha != prev_state->cached_color_mask_alpha)) 216010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) glColorMask(cached_color_mask_red, 217010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_color_mask_green, 218010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_color_mask_blue, 219010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_color_mask_alpha); 220c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((cull_mode != prev_state->cull_mode)) 221c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glCullFace(cull_mode); 222c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((depth_func != prev_state->depth_func)) 223c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glDepthFunc(depth_func); 224010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if ((cached_depth_mask != prev_state->cached_depth_mask)) 225010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) glDepthMask(cached_depth_mask); 226c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((z_near != prev_state->z_near) || (z_far != prev_state->z_far)) 227c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glDepthRange(z_near, z_far); 228c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((front_face != prev_state->front_face)) 229c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glFrontFace(front_face); 2301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (prev_state->hint_generate_mipmap != hint_generate_mipmap) { 231c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glHint(GL_GENERATE_MIPMAP_HINT, hint_generate_mipmap); 2321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 2331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (feature_info_->feature_flags().oes_standard_derivatives) { 234c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if (prev_state->hint_fragment_shader_derivative != 2351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci hint_fragment_shader_derivative) { 236c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glHint(GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES, 237c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch hint_fragment_shader_derivative); 2381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 2391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 240c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((line_width != prev_state->line_width)) 241c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glLineWidth(line_width); 2421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (feature_info_->feature_flags().chromium_path_rendering) { 2431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (memcmp(prev_state->modelview_matrix, 2441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci modelview_matrix, 2451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci sizeof(GLfloat) * 16)) { 2461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci glMatrixLoadfEXT(GL_PATH_MODELVIEW_CHROMIUM, modelview_matrix); 2471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 2481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 2491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (feature_info_->feature_flags().chromium_path_rendering) { 2501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (memcmp(prev_state->projection_matrix, 2511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci projection_matrix, 2521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci sizeof(GLfloat) * 16)) { 2531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci glMatrixLoadfEXT(GL_PATH_PROJECTION_CHROMIUM, projection_matrix); 2541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 2551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 2561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (prev_state->pack_alignment != pack_alignment) { 257c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glPixelStorei(GL_PACK_ALIGNMENT, pack_alignment); 2581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 2591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (prev_state->unpack_alignment != unpack_alignment) { 260c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glPixelStorei(GL_UNPACK_ALIGNMENT, unpack_alignment); 2611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 262c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((polygon_offset_factor != prev_state->polygon_offset_factor) || 263c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (polygon_offset_units != prev_state->polygon_offset_units)) 264c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glPolygonOffset(polygon_offset_factor, polygon_offset_units); 265c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((sample_coverage_value != prev_state->sample_coverage_value) || 266c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (sample_coverage_invert != prev_state->sample_coverage_invert)) 267c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glSampleCoverage(sample_coverage_value, sample_coverage_invert); 268c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((scissor_x != prev_state->scissor_x) || 269c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (scissor_y != prev_state->scissor_y) || 270c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (scissor_width != prev_state->scissor_width) || 271c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (scissor_height != prev_state->scissor_height)) 272c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glScissor(scissor_x, scissor_y, scissor_width, scissor_height); 273c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((stencil_front_func != prev_state->stencil_front_func) || 274c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (stencil_front_ref != prev_state->stencil_front_ref) || 275c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (stencil_front_mask != prev_state->stencil_front_mask)) 276c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glStencilFuncSeparate( 277c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch GL_FRONT, stencil_front_func, stencil_front_ref, stencil_front_mask); 278c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((stencil_back_func != prev_state->stencil_back_func) || 279c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (stencil_back_ref != prev_state->stencil_back_ref) || 280c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (stencil_back_mask != prev_state->stencil_back_mask)) 281c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glStencilFuncSeparate( 282c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch GL_BACK, stencil_back_func, stencil_back_ref, stencil_back_mask); 283010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if ((cached_stencil_front_writemask != 284010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) prev_state->cached_stencil_front_writemask)) 285010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) glStencilMaskSeparate(GL_FRONT, cached_stencil_front_writemask); 286010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if ((cached_stencil_back_writemask != 287010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) prev_state->cached_stencil_back_writemask)) 288010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) glStencilMaskSeparate(GL_BACK, cached_stencil_back_writemask); 289c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((stencil_front_fail_op != prev_state->stencil_front_fail_op) || 290c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (stencil_front_z_fail_op != prev_state->stencil_front_z_fail_op) || 291c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (stencil_front_z_pass_op != prev_state->stencil_front_z_pass_op)) 292c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glStencilOpSeparate(GL_FRONT, 293c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch stencil_front_fail_op, 294c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch stencil_front_z_fail_op, 295c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch stencil_front_z_pass_op); 296c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((stencil_back_fail_op != prev_state->stencil_back_fail_op) || 297c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (stencil_back_z_fail_op != prev_state->stencil_back_z_fail_op) || 298c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (stencil_back_z_pass_op != prev_state->stencil_back_z_pass_op)) 299c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glStencilOpSeparate(GL_BACK, 300c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch stencil_back_fail_op, 301c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch stencil_back_z_fail_op, 302c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch stencil_back_z_pass_op); 303c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch if ((viewport_x != prev_state->viewport_x) || 304c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (viewport_y != prev_state->viewport_y) || 305c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (viewport_width != prev_state->viewport_width) || 306c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch (viewport_height != prev_state->viewport_height)) 307c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glViewport(viewport_x, viewport_y, viewport_width, viewport_height); 308c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch } else { 309c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glBlendColor(blend_color_red, 310c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blend_color_green, 311c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blend_color_blue, 312c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blend_color_alpha); 313c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glBlendEquationSeparate(blend_equation_rgb, blend_equation_alpha); 314c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glBlendFuncSeparate( 315c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blend_source_rgb, blend_dest_rgb, blend_source_alpha, blend_dest_alpha); 316c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glClearColor(color_clear_red, 317c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch color_clear_green, 318c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch color_clear_blue, 319c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch color_clear_alpha); 320c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glClearDepth(depth_clear); 321c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glClearStencil(stencil_clear); 322010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) glColorMask(cached_color_mask_red, 323010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_color_mask_green, 324010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_color_mask_blue, 325010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) cached_color_mask_alpha); 326c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glCullFace(cull_mode); 327c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glDepthFunc(depth_func); 328010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) glDepthMask(cached_depth_mask); 329c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glDepthRange(z_near, z_far); 330c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glFrontFace(front_face); 331c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glHint(GL_GENERATE_MIPMAP_HINT, hint_generate_mipmap); 3321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (feature_info_->feature_flags().oes_standard_derivatives) { 333c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glHint(GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES, 334c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch hint_fragment_shader_derivative); 3351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 336c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glLineWidth(line_width); 3371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (feature_info_->feature_flags().chromium_path_rendering) { 3381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci glMatrixLoadfEXT(GL_PATH_MODELVIEW_CHROMIUM, modelview_matrix); 3391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 3401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (feature_info_->feature_flags().chromium_path_rendering) { 3411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci glMatrixLoadfEXT(GL_PATH_PROJECTION_CHROMIUM, projection_matrix); 3421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 343c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glPixelStorei(GL_PACK_ALIGNMENT, pack_alignment); 344c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glPixelStorei(GL_UNPACK_ALIGNMENT, unpack_alignment); 345c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glPolygonOffset(polygon_offset_factor, polygon_offset_units); 346c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glSampleCoverage(sample_coverage_value, sample_coverage_invert); 347c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glScissor(scissor_x, scissor_y, scissor_width, scissor_height); 348c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glStencilFuncSeparate( 349c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch GL_FRONT, stencil_front_func, stencil_front_ref, stencil_front_mask); 350c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glStencilFuncSeparate( 351c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch GL_BACK, stencil_back_func, stencil_back_ref, stencil_back_mask); 352010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) glStencilMaskSeparate(GL_FRONT, cached_stencil_front_writemask); 353010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) glStencilMaskSeparate(GL_BACK, cached_stencil_back_writemask); 354c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glStencilOpSeparate(GL_FRONT, 355c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch stencil_front_fail_op, 356c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch stencil_front_z_fail_op, 357c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch stencil_front_z_pass_op); 358c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glStencilOpSeparate(GL_BACK, 359c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch stencil_back_fail_op, 360c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch stencil_back_z_fail_op, 361c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch stencil_back_z_pass_op); 362c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch glViewport(viewport_x, viewport_y, viewport_width, viewport_height); 363c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch } 3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool ContextState::GetEnabled(GLenum cap) const { 3662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) switch (cap) { 3672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_BLEND: 3682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return enable_flags.blend; 3692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_CULL_FACE: 3702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return enable_flags.cull_face; 3712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_DEPTH_TEST: 3722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return enable_flags.depth_test; 3732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_DITHER: 3742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return enable_flags.dither; 3752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_POLYGON_OFFSET_FILL: 3762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return enable_flags.polygon_offset_fill; 3772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_SAMPLE_ALPHA_TO_COVERAGE: 3782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return enable_flags.sample_alpha_to_coverage; 3792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_SAMPLE_COVERAGE: 3802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return enable_flags.sample_coverage; 3812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_SCISSOR_TEST: 3822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return enable_flags.scissor_test; 3832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_TEST: 3842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return enable_flags.stencil_test; 3852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) default: 386f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) NOTREACHED(); 3872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return false; 3882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 3892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 3902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 391a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)bool ContextState::GetStateAsGLint(GLenum pname, 392a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) GLint* params, 393a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) GLsizei* num_written) const { 3942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) switch (pname) { 395868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_BLEND_COLOR: 3962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 4; 3972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 398868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(blend_color_red); 399868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[1] = static_cast<GLint>(blend_color_green); 400868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[2] = static_cast<GLint>(blend_color_blue); 401868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[3] = static_cast<GLint>(blend_color_alpha); 402868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 403868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 404868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_BLEND_EQUATION_RGB: 405868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 1; 406868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 407868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(blend_equation_rgb); 408868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 409868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 410868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_BLEND_EQUATION_ALPHA: 411868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 1; 412868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 413868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(blend_equation_alpha); 4142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 4162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_BLEND_SRC_RGB: 4172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 4182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 4192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(blend_source_rgb); 4202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 4222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_BLEND_DST_RGB: 4232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 4242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 4252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(blend_dest_rgb); 4262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 4282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_BLEND_SRC_ALPHA: 4292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 4302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 4312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(blend_source_alpha); 4322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 4342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_BLEND_DST_ALPHA: 4352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 4362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 4372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(blend_dest_alpha); 4382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 440868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_COLOR_CLEAR_VALUE: 441868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 4; 4422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 443868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(color_clear_red); 444868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[1] = static_cast<GLint>(color_clear_green); 445868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[2] = static_cast<GLint>(color_clear_blue); 446868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[3] = static_cast<GLint>(color_clear_alpha); 4472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 449868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_DEPTH_CLEAR_VALUE: 450868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 1; 4512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 452868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(depth_clear); 4532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 4552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_CLEAR_VALUE: 4562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 4572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 4582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(stencil_clear); 4592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 4612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_COLOR_WRITEMASK: 4622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 4; 4632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 4642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(color_mask_red); 4652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[1] = static_cast<GLint>(color_mask_green); 4662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[2] = static_cast<GLint>(color_mask_blue); 4672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[3] = static_cast<GLint>(color_mask_alpha); 4682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 470868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_CULL_FACE_MODE: 4712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 4722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 473868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(cull_mode); 4742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 476868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_DEPTH_FUNC: 4772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 4782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 479868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(depth_func); 4802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 482868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_DEPTH_WRITEMASK: 4832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 4842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 485868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(depth_mask); 4862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 488868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_DEPTH_RANGE: 489868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 2; 4902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 491868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(z_near); 492868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[1] = static_cast<GLint>(z_far); 4932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 495868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_FRONT_FACE: 4962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 4972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 498868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(front_face); 4992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 501868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_GENERATE_MIPMAP_HINT: 5022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 5032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 504868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(hint_generate_mipmap); 5052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 507868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES: 5082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 5092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 510868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(hint_fragment_shader_derivative); 5112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 513868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_LINE_WIDTH: 5142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 5152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 516868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(line_width); 5172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 5191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci case GL_PATH_MODELVIEW_MATRIX_CHROMIUM: 5201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci *num_written = 16; 5211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (params) { 5221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci for (size_t i = 0; i < 16; ++i) { 5231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci params[i] = static_cast<GLint>(round(modelview_matrix[i])); 5241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 5251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 5261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return true; 5271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci case GL_PATH_PROJECTION_MATRIX_CHROMIUM: 5281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci *num_written = 16; 5291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (params) { 5301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci for (size_t i = 0; i < 16; ++i) { 5311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci params[i] = static_cast<GLint>(round(projection_matrix[i])); 5321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 5331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 5341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return true; 535868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_PACK_ALIGNMENT: 5362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 5372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 538868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(pack_alignment); 5392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 541868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_UNPACK_ALIGNMENT: 5422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 5432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 544868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(unpack_alignment); 5452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 5472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_POLYGON_OFFSET_FACTOR: 5482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 5492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 5501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci params[0] = static_cast<GLint>(round(polygon_offset_factor)); 5512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 5532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_POLYGON_OFFSET_UNITS: 5542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 5552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 5561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci params[0] = static_cast<GLint>(round(polygon_offset_units)); 5572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 559868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_SAMPLE_COVERAGE_VALUE: 5602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 5612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 562868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(sample_coverage_value); 5632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 565868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_SAMPLE_COVERAGE_INVERT: 5662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 5672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 568868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(sample_coverage_invert); 569868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 570868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 571868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_SCISSOR_BOX: 572868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 4; 573868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 574868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(scissor_x); 575868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[1] = static_cast<GLint>(scissor_y); 576868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[2] = static_cast<GLint>(scissor_width); 577868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[3] = static_cast<GLint>(scissor_height); 5782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 5802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_FUNC: 5812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 5822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 5832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(stencil_front_func); 5842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 5862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_REF: 5872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 5882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 5892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(stencil_front_ref); 5902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 5922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_VALUE_MASK: 5932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 5942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 5952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(stencil_front_mask); 5962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 5982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_BACK_FUNC: 5992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 6002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 6012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(stencil_back_func); 6022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 6032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 6042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_BACK_REF: 6052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 6062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 6072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(stencil_back_ref); 6082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 6092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 6102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_BACK_VALUE_MASK: 6112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 6122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 6132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(stencil_back_mask); 6142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 6152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 616868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_WRITEMASK: 6172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 6182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 619868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(stencil_front_writemask); 6202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 6212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 622868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_BACK_WRITEMASK: 6232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 6242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 625868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(stencil_back_writemask); 6262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 6272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 628868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_FAIL: 6292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 6302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 631868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(stencil_front_fail_op); 6322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 6332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 634868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_PASS_DEPTH_FAIL: 6352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 6362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 637868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(stencil_front_z_fail_op); 6382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 6392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 640868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_PASS_DEPTH_PASS: 6412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 6422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 643868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(stencil_front_z_pass_op); 644868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 645868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 646868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_BACK_FAIL: 647868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 1; 648868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 649868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(stencil_back_fail_op); 650868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 651868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 652868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_BACK_PASS_DEPTH_FAIL: 653868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 1; 654868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 655868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(stencil_back_z_fail_op); 656868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 657868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 658868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_BACK_PASS_DEPTH_PASS: 659868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 1; 660868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 661868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(stencil_back_z_pass_op); 662868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 663868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 664868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_VIEWPORT: 665868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 4; 666868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 667868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLint>(viewport_x); 668868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[1] = static_cast<GLint>(viewport_y); 669868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[2] = static_cast<GLint>(viewport_width); 670868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[3] = static_cast<GLint>(viewport_height); 6712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 6722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 6732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_BLEND: 6742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 6752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 6762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(enable_flags.blend); 6772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 6782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 6792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_CULL_FACE: 6802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 6812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 6822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(enable_flags.cull_face); 6832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 6842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 6852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_DEPTH_TEST: 6862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 6872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 6882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(enable_flags.depth_test); 6892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 6902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 6912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_DITHER: 6922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 6932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 6942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(enable_flags.dither); 6952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 6962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 6972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_POLYGON_OFFSET_FILL: 6982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 6992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 7002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(enable_flags.polygon_offset_fill); 7012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 7032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_SAMPLE_ALPHA_TO_COVERAGE: 7042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 7052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 7062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(enable_flags.sample_alpha_to_coverage); 7072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 7092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_SAMPLE_COVERAGE: 7102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 7112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 7122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(enable_flags.sample_coverage); 7132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 7152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_SCISSOR_TEST: 7162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 7172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 7182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(enable_flags.scissor_test); 7192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 7212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_TEST: 7222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 7232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 7242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLint>(enable_flags.stencil_test); 7252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 7272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) default: 7282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return false; 7292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 7312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 732a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)bool ContextState::GetStateAsGLfloat(GLenum pname, 733a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) GLfloat* params, 734a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) GLsizei* num_written) const { 7352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) switch (pname) { 736868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_BLEND_COLOR: 7372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 4; 7382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 739868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(blend_color_red); 740868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[1] = static_cast<GLfloat>(blend_color_green); 741868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[2] = static_cast<GLfloat>(blend_color_blue); 742868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[3] = static_cast<GLfloat>(blend_color_alpha); 743868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 744868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 745868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_BLEND_EQUATION_RGB: 746868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 1; 747868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 748868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(blend_equation_rgb); 749868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 750868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 751868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_BLEND_EQUATION_ALPHA: 752868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 1; 753868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 754868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(blend_equation_alpha); 7552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 7572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_BLEND_SRC_RGB: 7582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 7592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 7602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(blend_source_rgb); 7612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 7632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_BLEND_DST_RGB: 7642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 7652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 7662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(blend_dest_rgb); 7672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 7692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_BLEND_SRC_ALPHA: 7702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 7712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 7722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(blend_source_alpha); 7732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 7752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_BLEND_DST_ALPHA: 7762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 7772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 7782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(blend_dest_alpha); 7792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 781868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_COLOR_CLEAR_VALUE: 782868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 4; 7832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 784868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(color_clear_red); 785868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[1] = static_cast<GLfloat>(color_clear_green); 786868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[2] = static_cast<GLfloat>(color_clear_blue); 787868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[3] = static_cast<GLfloat>(color_clear_alpha); 7882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 790868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_DEPTH_CLEAR_VALUE: 791868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 1; 7922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 793868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(depth_clear); 7942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 7962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_CLEAR_VALUE: 7972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 7982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 7992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_clear); 8002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 8022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_COLOR_WRITEMASK: 8032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 4; 8042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 8052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(color_mask_red); 8062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[1] = static_cast<GLfloat>(color_mask_green); 8072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[2] = static_cast<GLfloat>(color_mask_blue); 8082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[3] = static_cast<GLfloat>(color_mask_alpha); 8092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 811868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_CULL_FACE_MODE: 8122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 8132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 814868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(cull_mode); 8152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 817868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_DEPTH_FUNC: 8182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 8192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 820868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(depth_func); 8212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 823868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_DEPTH_WRITEMASK: 8242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 8252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 826868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(depth_mask); 8272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 829868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_DEPTH_RANGE: 830868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 2; 8312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 832868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(z_near); 833868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[1] = static_cast<GLfloat>(z_far); 8342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 836868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_FRONT_FACE: 8372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 8382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 839868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(front_face); 8402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 842868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_GENERATE_MIPMAP_HINT: 8432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 8442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 845868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(hint_generate_mipmap); 8462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 848868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES: 8492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 8502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 851868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(hint_fragment_shader_derivative); 8522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 854868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_LINE_WIDTH: 8552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 8562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 857868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(line_width); 8582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 8601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci case GL_PATH_MODELVIEW_MATRIX_CHROMIUM: 8611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci *num_written = 16; 8621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (params) { 8631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci memcpy(params, modelview_matrix, sizeof(GLfloat) * 16); 8641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 8651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return true; 8661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci case GL_PATH_PROJECTION_MATRIX_CHROMIUM: 8671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci *num_written = 16; 8681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (params) { 8691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci memcpy(params, projection_matrix, sizeof(GLfloat) * 16); 8701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 8711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return true; 872868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_PACK_ALIGNMENT: 8732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 8742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 875868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(pack_alignment); 8762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 878868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_UNPACK_ALIGNMENT: 8792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 8802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 881868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(unpack_alignment); 8822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 8842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_POLYGON_OFFSET_FACTOR: 8852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 8862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 8872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(polygon_offset_factor); 8882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 8902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_POLYGON_OFFSET_UNITS: 8912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 8922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 8932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(polygon_offset_units); 8942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 896868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_SAMPLE_COVERAGE_VALUE: 8972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 8982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 899868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(sample_coverage_value); 9002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 9012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 902868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_SAMPLE_COVERAGE_INVERT: 9032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 9042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 905868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(sample_coverage_invert); 906868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 907868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 908868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_SCISSOR_BOX: 909868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 4; 910868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 911868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(scissor_x); 912868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[1] = static_cast<GLfloat>(scissor_y); 913868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[2] = static_cast<GLfloat>(scissor_width); 914868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[3] = static_cast<GLfloat>(scissor_height); 9152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 9162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 9172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_FUNC: 9182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 9192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 9202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_front_func); 9212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 9222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 9232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_REF: 9242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 9252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 9262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_front_ref); 9272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 9282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 9292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_VALUE_MASK: 9302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 9312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 9322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_front_mask); 9332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 9342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 9352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_BACK_FUNC: 9362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 9372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 9382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_back_func); 9392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 9402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 9412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_BACK_REF: 9422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 9432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 9442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_back_ref); 9452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 9462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 9472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_BACK_VALUE_MASK: 9482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 9492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 9502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_back_mask); 9512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 9522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 953868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_WRITEMASK: 9542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 9552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 956868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_front_writemask); 9572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 9582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 959868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_BACK_WRITEMASK: 9602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 9612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 962868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_back_writemask); 9632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 9642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 965868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_FAIL: 9662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 9672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 968868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_front_fail_op); 9692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 9702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 971868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_PASS_DEPTH_FAIL: 9722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 9732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 974868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_front_z_fail_op); 9752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 9762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 977868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_PASS_DEPTH_PASS: 9782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 9792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 980868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_front_z_pass_op); 981868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 982868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 983868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_BACK_FAIL: 984868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 1; 985868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 986868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_back_fail_op); 987868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 988868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 989868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_BACK_PASS_DEPTH_FAIL: 990868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 1; 991868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 992868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_back_z_fail_op); 993868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 994868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 995868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_STENCIL_BACK_PASS_DEPTH_PASS: 996868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 1; 997868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 998868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(stencil_back_z_pass_op); 999868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 1000868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return true; 1001868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case GL_VIEWPORT: 1002868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) *num_written = 4; 1003868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (params) { 1004868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[0] = static_cast<GLfloat>(viewport_x); 1005868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[1] = static_cast<GLfloat>(viewport_y); 1006868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[2] = static_cast<GLfloat>(viewport_width); 1007868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) params[3] = static_cast<GLfloat>(viewport_height); 10082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 10092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 10102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_BLEND: 10112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 10122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 10132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(enable_flags.blend); 10142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 10152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 10162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_CULL_FACE: 10172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 10182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 10192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(enable_flags.cull_face); 10202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 10212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 10222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_DEPTH_TEST: 10232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 10242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 10252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(enable_flags.depth_test); 10262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 10272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 10282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_DITHER: 10292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 10302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 10312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(enable_flags.dither); 10322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 10332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 10342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_POLYGON_OFFSET_FILL: 10352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 10362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 10372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(enable_flags.polygon_offset_fill); 10382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 10392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 10402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_SAMPLE_ALPHA_TO_COVERAGE: 10412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 10422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 1043a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) params[0] = static_cast<GLfloat>(enable_flags.sample_alpha_to_coverage); 10442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 10452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 10462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_SAMPLE_COVERAGE: 10472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 10482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 10492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(enable_flags.sample_coverage); 10502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 10512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 10522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_SCISSOR_TEST: 10532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 10542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 10552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(enable_flags.scissor_test); 10562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 10572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 10582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case GL_STENCIL_TEST: 10592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *num_written = 1; 10602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (params) { 10612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params[0] = static_cast<GLfloat>(enable_flags.stencil_test); 10622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 10632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 10642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) default: 10652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return false; 10662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 10672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // GPU_COMMAND_BUFFER_SERVICE_CONTEXT_STATE_IMPL_AUTOGEN_H_ 1069