Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 3295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3306 m_context->stencilOp(fail, zfail, zpass); | 3306 m_context->stencilOp(fail, zfail, zpass); |
| 3307 } | 3307 } |
| 3308 | 3308 |
| 3309 void WebGLRenderingContext::stencilOpSeparate(GLenum face, GLenum fail, GLenum z fail, GLenum zpass) | 3309 void WebGLRenderingContext::stencilOpSeparate(GLenum face, GLenum fail, GLenum z fail, GLenum zpass) |
| 3310 { | 3310 { |
| 3311 if (isContextLost()) | 3311 if (isContextLost()) |
| 3312 return; | 3312 return; |
| 3313 m_context->stencilOpSeparate(face, fail, zfail, zpass); | 3313 m_context->stencilOpSeparate(face, fail, zfail, zpass); |
| 3314 } | 3314 } |
| 3315 | 3315 |
| 3316 GLenum WebGLRenderingContext::convertTexInternalFormat(GLenum internalformat, GL enum type) | |
| 3317 { | |
| 3318 // Convert to sized internal formats that are renderable with GL_CHROMIUM_co lor_buffer_float_rgb(a). | |
| 3319 if (type == GL_FLOAT && internalformat == GL_RGBA | |
| 3320 && m_contextSupport->isExtensionEnabled("GL_CHROMIUM_color_buffer_float_ rgba")) | |
| 3321 return GL_RGBA32F_EXT; | |
| 3322 if (type == GL_FLOAT && internalformat == GL_RGB | |
| 3323 && m_contextSupport->isExtensionEnabled("GL_CHROMIUM_color_buffer_float_ rgb")) | |
| 3324 return GL_RGB32F_EXT; | |
| 3325 return internalformat; | |
|
Ken Russell (switch to Gerrit)
2014/02/11 23:46:52
There aren't any queries whose results need to be
oetuaho-nv
2014/02/12 12:45:36
I couldn't find any other calls where conversions
| |
| 3326 } | |
| 3327 | |
| 3316 void WebGLRenderingContext::texImage2DBase(GLenum target, GLint level, GLenum in ternalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels, ExceptionState& exceptionState) | 3328 void WebGLRenderingContext::texImage2DBase(GLenum target, GLint level, GLenum in ternalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels, ExceptionState& exceptionState) |
| 3317 { | 3329 { |
| 3318 // All calling functions check isContextLost, so a duplicate check is not ne eded here. | 3330 // All calling functions check isContextLost, so a duplicate check is not ne eded here. |
| 3319 // FIXME: Handle errors. | 3331 // FIXME: Handle errors. |
| 3320 WebGLTexture* tex = validateTextureBinding("texImage2D", target, true); | 3332 WebGLTexture* tex = validateTextureBinding("texImage2D", target, true); |
| 3321 ASSERT(validateTexFuncParameters("texImage2D", NotTexSubImage2D, target, lev el, internalformat, width, height, border, format, type)); | 3333 ASSERT(validateTexFuncParameters("texImage2D", NotTexSubImage2D, target, lev el, internalformat, width, height, border, format, type)); |
| 3322 ASSERT(tex); | 3334 ASSERT(tex); |
| 3323 ASSERT(!level || !WebGLTexture::isNPOT(width, height)); | 3335 ASSERT(!level || !WebGLTexture::isNPOT(width, height)); |
| 3324 ASSERT(!pixels || validateSettableTexFormat("texImage2D", internalformat)); | 3336 ASSERT(!pixels || validateSettableTexFormat("texImage2D", internalformat)); |
| 3325 m_context->texImage2D(target, level, internalformat, width, height, | 3337 m_context->texImage2D(target, level, convertTexInternalFormat(internalformat , type), width, height, border, format, type, pixels); |
| 3326 border, format, type, pixels); | |
| 3327 tex->setLevelInfo(target, level, internalformat, width, height, type); | 3338 tex->setLevelInfo(target, level, internalformat, width, height, type); |
| 3328 } | 3339 } |
| 3329 | 3340 |
| 3330 void WebGLRenderingContext::texImage2DImpl(GLenum target, GLint level, GLenum in ternalformat, GLenum format, GLenum type, Image* image, GraphicsContext3D::Image HtmlDomSource domSource, bool flipY, bool premultiplyAlpha, ExceptionState& exce ptionState) | 3341 void WebGLRenderingContext::texImage2DImpl(GLenum target, GLint level, GLenum in ternalformat, GLenum format, GLenum type, Image* image, GraphicsContext3D::Image HtmlDomSource domSource, bool flipY, bool premultiplyAlpha, ExceptionState& exce ptionState) |
| 3331 { | 3342 { |
| 3332 // All calling functions check isContextLost, so a duplicate check is not ne eded here. | 3343 // All calling functions check isContextLost, so a duplicate check is not ne eded here. |
| 3333 Vector<uint8_t> data; | 3344 Vector<uint8_t> data; |
| 3334 GraphicsContext3D::ImageExtractor imageExtractor(image, domSource, premultip lyAlpha, m_unpackColorspaceConversion == GL_NONE); | 3345 GraphicsContext3D::ImageExtractor imageExtractor(image, domSource, premultip lyAlpha, m_unpackColorspaceConversion == GL_NONE); |
| 3335 if (!imageExtractor.extractSucceeded()) { | 3346 if (!imageExtractor.extractSucceeded()) { |
| 3336 synthesizeGLError(GL_INVALID_VALUE, "texImage2D", "bad image data"); | 3347 synthesizeGLError(GL_INVALID_VALUE, "texImage2D", "bad image data"); |
| (...skipping 2313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5650 if (m_textureUnits[i].m_texture2DBinding | 5661 if (m_textureUnits[i].m_texture2DBinding |
| 5651 || m_textureUnits[i].m_textureCubeMapBinding) { | 5662 || m_textureUnits[i].m_textureCubeMapBinding) { |
| 5652 m_onePlusMaxNonDefaultTextureUnit = i + 1; | 5663 m_onePlusMaxNonDefaultTextureUnit = i + 1; |
| 5653 return; | 5664 return; |
| 5654 } | 5665 } |
| 5655 } | 5666 } |
| 5656 m_onePlusMaxNonDefaultTextureUnit = 0; | 5667 m_onePlusMaxNonDefaultTextureUnit = 0; |
| 5657 } | 5668 } |
| 5658 | 5669 |
| 5659 } // namespace WebCore | 5670 } // namespace WebCore |
| OLD | NEW |