Home | History | Annotate | Download | only in libGLESv2

Lines Matching refs:mState

56 	mState.depthClearValue = 1.0f;
57 mState.stencilClearValue = 0;
59 mState.cullFaceEnabled = false;
60 mState.cullMode = GL_BACK;
61 mState.frontFace = GL_CCW;
62 mState.depthTestEnabled = false;
63 mState.depthFunc = GL_LESS;
64 mState.blendEnabled = false;
65 mState.sourceBlendRGB = GL_ONE;
66 mState.sourceBlendAlpha = GL_ONE;
67 mState.destBlendRGB = GL_ZERO;
68 mState.destBlendAlpha = GL_ZERO;
69 mState.blendEquationRGB = GL_FUNC_ADD;
70 mState.blendEquationAlpha = GL_FUNC_ADD;
71 mState.blendColor.red = 0;
72 mState.blendColor.green = 0;
73 mState.blendColor.blue = 0;
74 mState.blendColor.alpha = 0;
75 mState.stencilTestEnabled = false;
76 mState.stencilFunc = GL_ALWAYS;
77 mState.stencilRef = 0;
78 mState.stencilMask = 0xFFFFFFFFu;
79 mState.stencilWritemask = 0xFFFFFFFFu;
80 mState.stencilBackFunc = GL_ALWAYS;
81 mState.stencilBackRef = 0;
82 mState.stencilBackMask = 0xFFFFFFFFu;
83 mState.stencilBackWritemask = 0xFFFFFFFFu;
84 mState.stencilFail = GL_KEEP;
85 mState.stencilPassDepthFail = GL_KEEP;
86 mState.stencilPassDepthPass = GL_KEEP;
87 mState.stencilBackFail = GL_KEEP;
88 mState.stencilBackPassDepthFail = GL_KEEP;
89 mState.stencilBackPassDepthPass = GL_KEEP;
90 mState.polygonOffsetFillEnabled = false;
91 mState.polygonOffsetFactor = 0.0f;
92 mState.polygonOffsetUnits = 0.0f;
93 mState.sampleAlphaToCoverageEnabled = false;
94 mState.sampleCoverageEnabled = false;
95 mState.sampleCoverageValue = 1.0f;
96 mState.sampleCoverageInvert = false;
97 mState.scissorTestEnabled = false;
98 mState.ditherEnabled = true;
99 mState.primitiveRestartFixedIndexEnabled = false;
100 mState.rasterizerDiscardEnabled = false;
101 mState.generateMipmapHint = GL_DONT_CARE;
102 mState.fragmentShaderDerivativeHint = GL_DONT_CARE;
103 mState.textureFilteringHint = GL_DONT_CARE;
105 mState.lineWidth = 1.0f;
107 mState.viewportX = 0;
108 mState.viewportY = 0;
109 mState.viewportWidth = 0;
110 mState.viewportHeight = 0;
111 mState.zNear = 0.0f;
112 mState.zFar = 1.0f;
114 mState.scissorX = 0;
115 mState.scissorY = 0;
116 mState.scissorWidth = 0;
117 mState.scissorHeight = 0;
119 mState.colorMaskRed = true;
120 mState.colorMaskGreen = true;
121 mState.colorMaskBlue = true;
122 mState.colorMaskAlpha = true;
123 mState.depthMask = true;
147 mState.activeSampler = 0;
159 mState.currentProgram = 0;
161 mState.packAlignment = 4;
162 mState.unpackInfo.alignment = 4;
163 mState.packRowLength = 0;
164 mState.packImageHeight = 0;
165 mState.packSkipPixels = 0;
166 mState.packSkipRows = 0;
167 mState.packSkipImages = 0;
168 mState.unpackInfo.rowLength = 0;
169 mState.unpackInfo.imageHeight = 0;
170 mState.unpackInfo.skipPixels = 0;
171 mState.unpackInfo.skipRows = 0;
172 mState.unpackInfo.skipImages = 0;
190 if(mState.currentProgram != 0)
192 Program *programObject = mResourceManager->getProgram(mState.currentProgram);
197 mState.currentProgram = 0;
229 mState.samplerTexture[type][sampler] = nullptr;
235 mState.vertexAttribute[i].mBoundBuffer = nullptr;
240 mState.activeQuery[i] = nullptr;
243 mState.arrayBuffer = nullptr;
244 mState.copyReadBuffer = nullptr;
245 mState.copyWriteBuffer = nullptr;
246 mState.pixelPackBuffer = nullptr;
247 mState.pixelUnpackBuffer = nullptr;
248 mState.genericUniformBuffer = nullptr;
251 mState.uniformBuffers[i].set(nullptr, 0, 0);
254 mState.renderbuffer = nullptr;
258 mState.sampler[i] = nullptr;
281 mState.viewportX = 0;
282 mState.viewportY = 0;
283 mState.viewportWidth = surface ? surface->getWidth() : 0;
284 mState.viewportHeight = surface ? surface->getHeight() : 0;
286 mState.scissorX = 0;
287 mState.scissorY = 0;
288 mState.scissorWidth = surface ? surface->getWidth() : 0;
289 mState.scissorHeight = surface ? surface->getHeight() : 0;
351 mState.colorClearValue.red = red;
352 mState.colorClearValue.green = green;
353 mState.colorClearValue.blue = blue;
354 mState.colorClearValue.alpha = alpha;
359 mState.depthClearValue = depth;
364 mState.stencilClearValue = stencil;
369 mState.cullFaceEnabled = enabled;
374 return mState.cullFaceEnabled;
379 mState.cullMode = mode;
384 if(mState.frontFace != front)
386 mState.frontFace = front;
393 if(mState.depthTestEnabled != enabled)
395 mState.depthTestEnabled = enabled;
402 return mState.depthTestEnabled;
407 if(mState.depthFunc != depthFunc)
409 mState.depthFunc = depthFunc;
416 mState.zNear = zNear;
417 mState.zFar = zFar;
422 if(mState.blendEnabled != enabled)
424 mState.blendEnabled = enabled;
431 return mState.blendEnabled;
436 if(mState.sourceBlendRGB != sourceRGB ||
437 mState.sourceBlendAlpha != sourceAlpha ||
438 mState.destBlendRGB != destRGB ||
439 mState.destBlendAlpha != destAlpha)
441 mState.sourceBlendRGB = sourceRGB;
442 mState.destBlendRGB = destRGB;
443 mState.sourceBlendAlpha = sourceAlpha;
444 mState.destBlendAlpha = destAlpha;
451 if(mState.blendColor.red != red ||
452 mState.blendColor.green != green ||
453 mState.blendColor.blue != blue ||
454 mState.blendColor.alpha != alpha)
456 mState.blendColor.red = red;
457 mState.blendColor.green = green;
458 mState.blendColor.blue = blue;
459 mState.blendColor.alpha = alpha;
466 if(mState.blendEquationRGB != rgbEquation ||
467 mState.blendEquationAlpha != alphaEquation)
469 mState.blendEquationRGB = rgbEquation;
470 mState.blendEquationAlpha = alphaEquation;
477 if(mState.stencilTestEnabled != enabled)
479 mState.stencilTestEnabled = enabled;
486 return mState.stencilTestEnabled;
491 if(mState.stencilFunc != stencilFunc ||
492 mState.stencilRef != stencilRef ||
493 mState.stencilMask != stencilMask)
495 mState.stencilFunc = stencilFunc;
496 mState.stencilRef = (stencilRef > 0) ? stencilRef : 0;
497 mState.stencilMask = stencilMask;
504 if(mState.stencilBackFunc != stencilBackFunc ||
505 mState.stencilBackRef != stencilBackRef ||
506 mState.stencilBackMask != stencilBackMask)
508 mState.stencilBackFunc = stencilBackFunc;
509 mState.stencilBackRef = (stencilBackRef > 0) ? stencilBackRef : 0;
510 mState.stencilBackMask = stencilBackMask;
517 if(mState.stencilWritemask != stencilWritemask)
519 mState.stencilWritemask = stencilWritemask;
526 if(mState.stencilBackWritemask != stencilBackWritemask)
528 mState.stencilBackWritemask = stencilBackWritemask;
535 if(mState.stencilFail != stencilFail ||
536 mState.stencilPassDepthFail != stencilPassDepthFail ||
537 mState.stencilPassDepthPass != stencilPassDepthPass)
539 mState.stencilFail = stencilFail;
540 mState.stencilPassDepthFail = stencilPassDepthFail;
541 mState.stencilPassDepthPass = stencilPassDepthPass;
548 if(mState.stencilBackFail != stencilBackFail ||
549 mState.stencilBackPassDepthFail != stencilBackPassDepthFail ||
550 mState.stencilBackPassDepthPass != stencilBackPassDepthPass)
552 mState.stencilBackFail = stencilBackFail;
553 mState.stencilBackPassDepthFail = stencilBackPassDepthFail;
554 mState.stencilBackPassDepthPass = stencilBackPassDepthPass;
561 if(mState.polygonOffsetFillEnabled != enabled)
563 mState.polygonOffsetFillEnabled = enabled;
570 return mState.polygonOffsetFillEnabled;
575 if(mState.polygonOffsetFactor != factor ||
576 mState.polygonOffsetUnits != units)
578 mState.polygonOffsetFactor = factor;
579 mState.polygonOffsetUnits = units;
586 if(mState.sampleAlphaToCoverageEnabled != enabled)
588 mState.sampleAlphaToCoverageEnabled = enabled;
595 return mState.sampleAlphaToCoverageEnabled;
600 if(mState.sampleCoverageEnabled != enabled)
602 mState.sampleCoverageEnabled = enabled;
609 return mState.sampleCoverageEnabled;
614 if(mState.sampleCoverageValue != value ||
615 mState.sampleCoverageInvert != invert)
617 mState.sampleCoverageValue = value;
618 mState.sampleCoverageInvert = invert;
625 mState.scissorTestEnabled = enabled;
630 return mState.scissorTestEnabled;
635 if(mState.ditherEnabled != enabled)
637 mState.ditherEnabled = enabled;
644 return mState.ditherEnabled;
649 mState.primitiveRestartFixedIndexEnabled = enabled;
654 return mState.primitiveRestartFixedIndexEnabled;
659 mState.rasterizerDiscardEnabled = enabled;
664 return mState.rasterizerDiscardEnabled;
669 mState.lineWidth = width;
675 mState.generateMipmapHint = hint;
680 mState.fragmentShaderDerivativeHint = hint;
688 mState.textureFilteringHint = hint;
693 mState.viewportX = x;
694 mState.viewportY = y;
695 mState.viewportWidth = std::min<GLsizei>(width, IMPLEMENTATION_MAX_RENDERBUFFER_SIZE); // GL_MAX_VIEWPORT_DIMS[0]
696 mState.viewportHeight = std::min<GLsizei>(height, IMPLEMENTATION_MAX_RENDERBUFFER_SIZE); // GL_MAX_VIEWPORT_DIMS[1]
701 mState.scissorX = x;
702 mState.scissorY = y;
703 mState.scissorWidth = width;
704 mState.scissorHeight = height;
709 if(mState.colorMaskRed != red || mState.colorMaskGreen != green ||
710 mState.colorMaskBlue != blue || mState.colorMaskAlpha != alpha)
712 mState.colorMaskRed = red;
713 mState.colorMaskGreen = green;
714 mState.colorMaskBlue = blue;
715 mState.colorMaskAlpha = alpha;
722 return (mState.colorMaskRed ? 0x1 : 0) |
723 (mState.colorMaskGreen ? 0x2 : 0) |
724 (mState.colorMaskBlue ? 0x4 : 0) |
725 (mState.colorMaskAlpha ? 0x8 : 0);
730 if(mState.depthMask != mask)
732 mState.depthMask = mask;
739 mState.activeSampler = active;
744 return mState.readFramebuffer;
749 return mState.drawFramebuffer;
754 return mState.renderbuffer.name();
788 return mState.arrayBuffer.name();
804 queryObject = mState.activeQuery[QUERY_ANY_SAMPLES_PASSED];
807 queryObject = mState.activeQuery[QUERY_ANY_SAMPLES_PASSED_CONSERVATIVE];
810 queryObject = mState.activeQuery[QUERY_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN];
857 return mState.vertexAttribute;
862 mState.packAlignment = alignment;
867 mState.unpackInfo.alignment = alignment;
872 return mState.unpackInfo;
877 mState.packRowLength = rowLength;
882 mState.packImageHeight = imageHeight;
887 mState.packSkipPixels = skipPixels;
892 mState.packSkipRows = skipRows;
897 mState.packSkipImages = skipImages;
902 mState.unpackInfo.rowLength = rowLength;
907 mState.unpackInfo.imageHeight = imageHeight;
912 mState.unpackInfo.skipPixels = skipPixels;
917 mState.unpackInfo.skipRows = skipRows;
922 mState.unpackInfo.skipImages = skipImages;
1129 return getFramebuffer(mState.readFramebuffer);
1134 return getFramebuffer(mState.drawFramebuffer);
1141 mState.arrayBuffer = getBuffer(buffer);
1155 mState.copyReadBuffer = getBuffer(buffer);
1162 mState.copyWriteBuffer = getBuffer(buffer);
1169 mState.pixelPackBuffer = getBuffer(buffer);
1176 mState.pixelUnpackBuffer = getBuffer(buffer);
1183 TransformFeedback* transformFeedback = getTransformFeedback(mState.transformFeedback);
1195 mState.samplerTexture[TEXTURE_2D][mState.activeSampler] = getTexture(texture);
1202 mState.samplerTexture[TEXTURE_CUBE][mState.activeSampler] = getTexture(texture);
1209 mState.samplerTexture[TEXTURE_EXTERNAL][mState.activeSampler] = getTexture(texture);
1216 mState.samplerTexture[TEXTURE_3D][mState.activeSampler] = getTexture(texture);
1223 mState.samplerTexture[TEXTURE_2D_ARRAY][mState.activeSampler] = getTexture(texture);
1233 mState.readFramebuffer = framebuffer;
1243 mState.drawFramebuffer = framebuffer;
1250 mState.renderbuffer = getRenderbuffer(renderbuffer);
1263 mState.vertexArray = array;
1270 mState.genericUniformBuffer = getBuffer(buffer);
1278 mState.uniformBuffers[index].set(bufferObject, static_cast<int>(offset), static_cast<int>(size));
1303 mState.transformFeedback = id;
1312 mState.sampler[unit] = samplerObject;
1319 GLuint priorProgram = mState.currentProgram;
1320 mState.currentProgram = program; // Must switch before trying to delete, otherwise it only gets flagged.
1358 if(mState.activeQuery[i])
1396 mState.activeQuery[qType] = queryObject;
1414 Query *queryObject = mState.activeQuery[qType];
1423 mState.activeQuery[qType] = nullptr;
1434 Renderbuffer *renderbufferObject = mState.renderbuffer;
1485 return getVertexArray(mState.vertexArray);
1526 return mState.arrayBuffer;
1536 return mState.copyReadBuffer;
1541 return mState.copyWriteBuffer;
1546 return mState.pixelPackBuffer;
1551 return mState.pixelUnpackBuffer;
1556 return mState.genericUniformBuffer;
1627 return getTransformFeedback(mState.transformFeedback);
1632 return mResourceManager->getProgram(mState.currentProgram);
1637 return static_cast<Texture2D*>(getSamplerTexture(mState.activeSampler, TEXTURE_2D));
1642 return static_cast<Texture3D*>(getSamplerTexture(mState.activeSampler, TEXTURE_3D));
1647 return static_cast<Texture2DArray*>(getSamplerTexture(mState.activeSampler, TEXTURE_2D_ARRAY));
1652 return static_cast<TextureCubeMap*>(getSamplerTexture(mState.activeSampler, TEXTURE_CUBE));
1657 return static_cast<TextureExternal*>(getSamplerTexture(mState.activeSampler, TEXTURE_EXTERNAL));
1662 GLuint texid = mState.samplerTexture[type][sampler].name();
1677 return mState.samplerTexture[type][sampler];
1773 case GL_SAMPLE_COVERAGE_INVERT: *params = mState.sampleCoverageInvert; break;
1774 case GL_DEPTH_WRITEMASK: *params = mState.depthMask; break;
1776 params[0] = mState.colorMaskRed;
1777 params[1] = mState.colorMaskGreen;
1778 params[2] = mState.colorMaskBlue;
1779 params[3] = mState.colorMaskAlpha;
1781 case GL_CULL_FACE: *params = mState.cullFaceEnabled; break;
1782 case GL_POLYGON_OFFSET_FILL: *params = mState.polygonOffsetFillEnabled; break;
1783 case GL_SAMPLE_ALPHA_TO_COVERAGE: *params = mState.sampleAlphaToCoverageEnabled; break;
1784 case GL_SAMPLE_COVERAGE: *params = mState.sampleCoverageEnabled; break;
1785 case GL_SCISSOR_TEST: *params = mState.scissorTestEnabled; break;
1786 case GL_STENCIL_TEST: *params = mState.stencilTestEnabled; break;
1787 case GL_DEPTH_TEST: *params = mState.depthTestEnabled; break;
1788 case GL_BLEND: *params = mState.blendEnabled; break;
1789 case GL_DITHER: *params = mState.ditherEnabled; break;
1790 case GL_PRIMITIVE_RESTART_FIXED_INDEX: *params = mState.primitiveRestartFixedIndexEnabled; break;
1791 case GL_RASTERIZER_DISCARD: *params = mState.rasterizerDiscardEnabled; break;
1794 TransformFeedback* transformFeedback = getTransformFeedback(mState.transformFeedback);
1804 TransformFeedback* transformFeedback = getTransformFeedback(mState.transformFeedback);
1827 case GL_LINE_WIDTH: *params = mState.lineWidth; break;
1828 case GL_SAMPLE_COVERAGE_VALUE: *params = mState.sampleCoverageValue; break;
1829 case GL_DEPTH_CLEAR_VALUE: *params = mState.depthClearValue; break;
1830 case GL_POLYGON_OFFSET_FACTOR: *params = mState.polygonOffsetFactor; break;
1831 case GL_POLYGON_OFFSET_UNITS: *params = mState.polygonOffsetUnits; break;
1841 params[0] = mState.zNear;
1842 params[1] = mState.zFar;
1845 params[0] = mState.colorClearValue.red;
1846 params[1] = mState.colorClearValue.green;
1847 params[2] = mState.colorClearValue.blue;
1848 params[3] = mState.colorClearValue.alpha;
1851 params[0] = mState.blendColor.red;
1852 params[1] = mState.blendColor.green;
1853 params[2] = mState.blendColor.blue;
1854 params[3] = mState.blendColor.alpha;
1891 case GL_DRAW_FRAMEBUFFER_BINDING_ANGLE: *params = mState.drawFramebuffer; return true;
1892 case GL_READ_FRAMEBUFFER_BINDING_ANGLE: *params = mState.readFramebuffer; return true;
1893 case GL_RENDERBUFFER_BINDING: *params = mState.renderbuffer.name(); return true;
1894 case GL_CURRENT_PROGRAM: *params = mState.currentProgram; return true;
1895 case GL_PACK_ALIGNMENT: *params = mState.packAlignment; return true;
1896 case GL_UNPACK_ALIGNMENT: *params = mState.unpackInfo.alignment; return true;
1897 case GL_GENERATE_MIPMAP_HINT: *params = mState.generateMipmapHint; return true;
1898 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES: *params = mState.fragmentShaderDerivativeHint; return true;
1899 case GL_TEXTURE_FILTERING_HINT_CHROMIUM: *params = mState.textureFilteringHint; return true;
1900 case GL_ACTIVE_TEXTURE: *params = (mState.activeSampler + GL_TEXTURE0); return true;
1901 case GL_STENCIL_FUNC: *params = mState.stencilFunc; return true;
1902 case GL_STENCIL_REF: *params = mState.stencilRef; return true;
1903 case GL_STENCIL_VALUE_MASK: *params = sw::clampToSignedInt(mState.stencilMask); return true;
1904 case GL_STENCIL_BACK_FUNC: *params = mState.stencilBackFunc; return true;
1905 case GL_STENCIL_BACK_REF: *params = mState.stencilBackRef; return true;
1906 case GL_STENCIL_BACK_VALUE_MASK: *params = sw::clampToSignedInt(mState.stencilBackMask); return true;
1907 case GL_STENCIL_FAIL: *params = mState.stencilFail; return true;
1908 case GL_STENCIL_PASS_DEPTH_FAIL: *params = mState.stencilPassDepthFail; return true;
1909 case GL_STENCIL_PASS_DEPTH_PASS: *params = mState.stencilPassDepthPass; return true;
1910 case GL_STENCIL_BACK_FAIL: *params = mState.stencilBackFail; return true;
1911 case GL_STENCIL_BACK_PASS_DEPTH_FAIL: *params = mState.stencilBackPassDepthFail; return true;
1912 case GL_STENCIL_BACK_PASS_DEPTH_PASS: *params = mState.stencilBackPassDepthPass; return true;
1913 case GL_DEPTH_FUNC: *params = mState.depthFunc; return true;
1914 case GL_BLEND_SRC_RGB: *params = mState.sourceBlendRGB; return true;
1915 case GL_BLEND_SRC_ALPHA: *params = mState.sourceBlendAlpha; return true;
1916 case GL_BLEND_DST_RGB: *params = mState.destBlendRGB; return true;
1917 case GL_BLEND_DST_ALPHA: *params = mState.destBlendAlpha; return true;
1918 case GL_BLEND_EQUATION_RGB: *params = mState.blendEquationRGB; return true;
1919 case GL_BLEND_EQUATION_ALPHA: *params = mState.blendEquationAlpha; return true;
1920 case GL_STENCIL_WRITEMASK: *params = sw::clampToSignedInt(mState.stencilWritemask); return true;
1921 case GL_STENCIL_BACK_WRITEMASK: *params = sw::clampToSignedInt(mState.stencilBackWritemask); return true;
1922 case GL_STENCIL_CLEAR_VALUE: *params = mState.stencilClearValue; return true;
1987 params[0] = mState.viewportX;
1988 params[1] = mState.viewportY;
1989 params[2] = mState.viewportWidth;
1990 params[3] = mState.viewportHeight;
1993 params[0] = mState.scissorX;
1994 params[1] = mState.scissorY;
1995 params[2] = mState.scissorWidth;
1996 params[3] = mState.scissorHeight;
1998 case GL_CULL_FACE_MODE: *params = mState.cullMode; return true;
1999 case GL_FRONT_FACE: *params = mState.frontFace; return true;
2055 if(mState.activeSampler > MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1)
2061 *params = mState.samplerTexture[TEXTURE_2D][mState.activeSampler].name();
2064 if(mState.activeSampler > MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1)
2070 *params = mState.samplerTexture[TEXTURE_CUBE][mState.activeSampler].name();
2073 if(mState.activeSampler > MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1)
2079 *params = mState.samplerTexture[TEXTURE_EXTERNAL][mState.activeSampler].name();
2082 if(mState.activeSampler > MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1)
2088 *params = mState.samplerTexture[TEXTURE_3D][mState.activeSampler].name();
2130 if(mState.activeSampler > MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1)
2136 *params = mState.samplerTexture[TEXTURE_2D_ARRAY][mState.activeSampler].name();
2139 *params = mState.copyReadBuffer.name();
2142 *params = mState.copyWriteBuffer.name();
2234 *params = mState.packRowLength;
2237 *params = mState.packSkipPixels;
2240 *params = mState.packSkipRows;
2243 *params = mState.pixelPackBuffer.name();
2246 *params = mState.pixelUnpackBuffer.name();
2256 *params = mState.sampler[mState.activeSampler].name();
2259 *params = mState.genericUniformBuffer.name();
2265 *params = static_cast<T>(mState.genericUniformBuffer->size());
2268 *params = static_cast<T>(mState.genericUniformBuffer->offset());
2271 *params = mState.unpackInfo.imageHeight;
2274 *params = mState.unpackInfo.rowLength;
2277 *params = mState.unpackInfo.skipImages;
2280 *params = mState.unpackInfo.skipPixels;
2283 *params = mState.unpackInfo.skipRows;
2290 TransformFeedback* transformFeedback = getTransformFeedback(mState.transformFeedback);
2303 TransformFeedback* transformFeedback = getTransformFeedback(mState.transformFeedback);
2327 TransformFeedback* transformFeedback = getTransformFeedback(mState.transformFeedback);
2373 const BufferBinding& uniformBuffer = mState.uniformBuffers[index];
2637 if(mState.scissorTestEnabled)
2639 sw::Rect scissor = { mState.scissorX, mState.scissorY, mState.scissorX + mState.scissorWidth, mState.scissorY + mState.scissorHeight };
2685 float zNear = clamp01(mState.zNear);
2686 float zFar = clamp01(mState.zFar);
2688 viewport.x0 = mState.viewportX;
2689 viewport.y0 = mState.viewportY;
2690 viewport.width = mState.viewportWidth;
2691 viewport.height = mState.viewportHeight;
2717 if(mState.cullFaceEnabled)
2719 device->setCullMode(es2sw::ConvertCullMode(mState.cullMode, mState.frontFace));
2728 if(mState.depthTestEnabled)
2731 device->setDepthCompare(es2sw::ConvertDepthComparison(mState.depthFunc));
2743 if(mState.blendEnabled)
2748 device->setBlendConstant(es2sw::ConvertColor(mState.blendColor));
2750 device->setSourceBlendFactor(es2sw::ConvertBlendFunc(mState.sourceBlendRGB));
2751 device->setDestBlendFactor(es2sw::ConvertBlendFunc(mState.destBlendRGB));
2752 device->setBlendOperation(es2sw::ConvertBlendOp(mState.blendEquationRGB));
2754 device->setSourceBlendFactorAlpha(es2sw::ConvertBlendFunc(mState.sourceBlendAlpha));
2755 device->setDestBlendFactorAlpha(es2sw::ConvertBlendFunc(mState.destBlendAlpha));
2756 device->setBlendOperationAlpha(es2sw::ConvertBlendOp(mState.blendEquationAlpha));
2768 if(mState.stencilTestEnabled && framebuffer->hasStencil())
2777 if(mState.frontFace == GL_CCW)
2779 device->setStencilWriteMask(mState.stencilWritemask);
2780 device->setStencilCompare(es2sw::ConvertStencilComparison(mState.stencilFunc));
2782 device->setStencilReference((mState.stencilRef < (GLint)maxStencil) ? mState.stencilRef : maxStencil);
2783 device->setStencilMask(mState.stencilMask);
2785 device->setStencilFailOperation(es2sw::ConvertStencilOp(mState.stencilFail));
2786 device->setStencilZFailOperation(es2sw::ConvertStencilOp(mState.stencilPassDepthFail));
2787 device->setStencilPassOperation(es2sw::ConvertStencilOp(mState.stencilPassDepthPass));
2789 device->setStencilWriteMaskCCW(mState.stencilBackWritemask);
2790 device->setStencilCompareCCW(es2sw::ConvertStencilComparison(mState.stencilBackFunc));
2792 device->setStencilReferenceCCW((mState.stencilBackRef < (GLint)maxStencil) ? mState.stencilBackRef : maxStencil);
2793 device->setStencilMaskCCW(mState.stencilBackMask);
2795 device->setStencilFailOperationCCW(es2sw::ConvertStencilOp(mState.stencilBackFail));
2796 device->setStencilZFailOperationCCW(es2sw::ConvertStencilOp(mState.stencilBackPassDepthFail));
2797 device->setStencilPassOperationCCW(es2sw::ConvertStencilOp(mState.stencilBackPassDepthPass));
2801 device->setStencilWriteMaskCCW(mState.stencilWritemask);
2802 device->setStencilCompareCCW(es2sw::ConvertStencilComparison(mState.stencilFunc));
2804 device->setStencilReferenceCCW((mState.stencilRef < (GLint)maxStencil) ? mState.stencilRef : maxStencil);
2805 device->setStencilMaskCCW(mState.stencilMask);
2807 device->setStencilFailOperationCCW(es2sw::ConvertStencilOp(mState.stencilFail));
2808 device->setStencilZFailOperationCCW(es2sw::ConvertStencilOp(mState.stencilPassDepthFail));
2809 device->setStencilPassOperationCCW(es2sw::ConvertStencilOp(mState.stencilPassDepthPass));
2811 device->setStencilWriteMask(mState.stencilBackWritemask);
2812 device->setStencilCompare(es2sw::ConvertStencilComparison(mState.stencilBackFunc));
2814 device->setStencilReference((mState.stencilBackRef < (GLint)maxStencil) ? mState.stencilBackRef : maxStencil);
2815 device->setStencilMask(mState.stencilBackMask);
2817 device->setStencilFailOperation(es2sw::ConvertStencilOp(mState.stencilBackFail));
2818 device->setStencilZFailOperation(es2sw::ConvertStencilOp(mState.stencilBackPassDepthFail));
2819 device->setStencilPassOperation(es2sw::ConvertStencilOp(mState.stencilBackPassDepthPass));
2835 device->setColorWriteMask(i, es2sw::ConvertColorMask(mState.colorMaskRed, mState.colorMaskGreen, mState.colorMaskBlue, mState.colorMaskAlpha));
2838 device->setDepthWriteEnable(mState.depthMask);
2845 if(mState.polygonOffsetFillEnabled)
2850 device->setSlopeDepthBias(mState.polygonOffsetFactor);
2851 float depthBias = ldexp(mState.polygonOffsetUnits, -(int)(depthbuffer->getDepthSize()));
2866 if(mState.sampleAlphaToCoverageEnabled)
2875 if(mState.sampleCoverageEnabled)
2878 if(mState.sampleCoverageValue != 0)
2889 if((i + 1) * mState.sampleCoverageValue >= threshold)
2897 if(mState.sampleCoverageInvert)
2919 device->setRasterizerDiscard(mState.rasterizerDiscardEnabled);
2993 programObject->applyUniformBuffers(device, mState.uniformBuffers);
3024 Sampler *samplerObject = mState.sampler[textureUnit];
3069 device->setHighPrecisionFiltering(samplerType, samplerIndex, mState.textureFilteringHint == GL_NICEST);
3229 GLsizei outputWidth = (mState.packRowLength > 0) ? mState.packRowLength : width;
3230 GLsizei outputPitch = egl::ComputePitch(outputWidth, format, type, mState.packAlignment);
3231 GLsizei outputHeight = (mState.packImageHeight == 0) ? height : mState.packImageHeight;
3233 pixels = ((char*)pixels) + egl::ComputePackingOffset(format, type, outputWidth, outputHeight, mState.packAlignment, mState.packSkipImages, mState.packSkipRows, mState.packSkipPixels);
3276 if(mState.rasterizerDiscardEnabled)
3299 device->clearColor(mState.colorClearValue.red, mState.colorClearValue.green, mState.colorClearValue.blue, mState.colorClearValue.alpha, rgbaMask);
3305 if(mState.depthMask != 0)
3307 float depth = clamp01(mState.depthClearValue);
3314 if(mState.stencilWritemask != 0)
3316 int stencil = mState.stencilClearValue & 0x000000FF;
3317 device->clearStencil(stencil, mState.stencilWritemask);
3325 if(rgbaMask && !mState.rasterizerDiscardEnabled)
3334 if(mState.scissorTestEnabled)
3336 clearRect.clip(mState.scissorX, mState.scissorY, mState.scissorX + mState.scissorWidth, mState.scissorY + mState.scissorHeight);
3363 if(mState.depthMask && !mState.rasterizerDiscardEnabled)
3373 if(mState.scissorTestEnabled)
3375 clearRect.clip(mState.scissorX, mState.scissorY, mState.scissorX + mState.scissorWidth, mState.scissorY + mState.scissorHeight);
3387 if(mState.stencilWritemask && !mState.rasterizerDiscardEnabled)
3397 if(mState.scissorTestEnabled)
3399 clearRect.clip(mState.scissorX, mState.scissorY, mState.scissorX + mState.scissorWidth, mState.scissorY + mState.scissorHeight);
3402 stencilbuffer->clearStencil(stencil, static_cast<unsigned char>(mState.stencilWritemask), clearRect.x0, clearRect.y0, clearRect.width(), clearRect.height());
3411 if(!mState.currentProgram)
3467 if(!mState.currentProgram)
3639 if(mState.copyReadBuffer.name() == buffer)
3641 mState.copyReadBuffer = nullptr;
3644 if(mState.copyWriteBuffer.name() == buffer)
3646 mState.copyWriteBuffer = nullptr;
3649 if(mState.pixelPackBuffer.name() == buffer)
3651 mState.pixelPackBuffer = nullptr;
3654 if(mState.pixelUnpackBuffer.name() == buffer)
3656 mState.pixelUnpackBuffer = nullptr;
3659 if(mState.genericUniformBuffer.name() == buffer)
3661 mState.genericUniformBuffer = nullptr;
3666 mState.arrayBuffer = nullptr;
3685 if(mState.vertexAttribute[attribute].mBoundBuffer.name() == buffer)
3687 mState.vertexAttribute[attribute].mBoundBuffer = nullptr;
3702 if(mState.samplerTexture[type][sampler].name() == texture)
3704 mState.samplerTexture[type][sampler] = nullptr;
3734 if(mState.readFramebuffer == framebuffer)
3739 if(mState.drawFramebuffer == framebuffer)
3751 if(mState.renderbuffer.name() == renderbuffer)
3783 gl::BindingPointer<Sampler> &samplerBinding = mState.sampler[textureUnit];
3793 return mState.cullFaceEnabled && mState.cullMode == GL_FRONT_AND_BACK && isTriangleMode(drawMode);
3819 mState.vertexAttribute[index].setCurrentValue(values);
3828 mState.vertexAttribute[index].setCurrentValue(values);
3837 mState.vertexAttribute[index].setCurrentValue(values);
3915 if(mState.scissorTestEnabled) // Only write to parts of the destination framebuffer which pass the scissor test
3917 if(destRect.x0 < mState.scissorX)
3919 int xDiff = mState.scissorX - destRect.x0;
3920 destScissoredRect.x0 = mState.scissorX;
3924 if(destRect.x1 > mState.scissorX + mState.scissorWidth)
3926 int xDiff = destRect.x1 - (mState.scissorX + mState.scissorWidth);
3927 destScissoredRect.x1 = mState.scissorX + mState.scissorWidth;
3931 if(destRect.y0 < mState.scissorY)
3933 int yDiff = mState.scissorY - destRect.y0;
3934 destScissoredRect.y0 = mState.scissorY;
3938 if(destRect.y1 > mState.scissorY + mState.scissorHeight)
3940 int yDiff = destRect.y1 - (mState.scissorY + mState.scissorHeight);
3941 destScissoredRect.y1 = mState.scissorY + mState.scissorHeight;