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

Side by Side Diff: Source/core/html/canvas/WebGLRenderingContext.cpp

Issue 13842017: Add OES_texture_half_float extension support in WebGL. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: move test cases to directory LayoutTest/webgl/ Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 3765 matching lines...) Expand 10 before | Expand all | Expand 10 after
3776 3776
3777 if (m_unpackAlignment != 1) 3777 if (m_unpackAlignment != 1)
3778 m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, 1); 3778 m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, 1);
3779 texImage2DBase(target, level, internalformat, image->width(), image->height( ), 0, format, type, needConversion ? data.data() : imagePixelData, ec); 3779 texImage2DBase(target, level, internalformat, image->width(), image->height( ), 0, format, type, needConversion ? data.data() : imagePixelData, ec);
3780 if (m_unpackAlignment != 1) 3780 if (m_unpackAlignment != 1)
3781 m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, m_unpackAlig nment); 3781 m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, m_unpackAlig nment);
3782 } 3782 }
3783 3783
3784 bool WebGLRenderingContext::validateTexFunc(const char* functionName, TexFuncVal idationFunctionType functionType, TexFuncValidationSourceType sourceType, GC3Den um target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei he ight, GC3Dint border, GC3Denum format, GC3Denum type, GC3Dint xoffset, GC3Dint y offset) 3784 bool WebGLRenderingContext::validateTexFunc(const char* functionName, TexFuncVal idationFunctionType functionType, TexFuncValidationSourceType sourceType, GC3Den um target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei he ight, GC3Dint border, GC3Denum format, GC3Denum type, GC3Dint xoffset, GC3Dint y offset)
3785 { 3785 {
3786 // FIXME: Uploading {ImageData, HTMLImageElement, HTMLCanvasElement, HTMLVid eoElement} to half floating point texture is not supported yet.
3787 // See https://bugs.webkit.org/show_bug.cgi?id=110936.
3788 if (sourceType != SourceArrayBufferView && type == GraphicsContext3D::HALF_F LOAT_OES) {
3789 synthesizeGLError(GraphicsContext3D::INVALID_OPERATION, functionName, "O peration not supported yet");
3790 return false;
3791 }
3792
3793 if (!validateTexFuncParameters(functionName, functionType, target, level, in ternalformat, width, height, border, format, type)) 3786 if (!validateTexFuncParameters(functionName, functionType, target, level, in ternalformat, width, height, border, format, type))
3794 return false; 3787 return false;
3795 3788
3796 WebGLTexture* texture = validateTextureBinding(functionName, target, true); 3789 WebGLTexture* texture = validateTextureBinding(functionName, target, true);
3797 if (!texture) 3790 if (!texture)
3798 return false; 3791 return false;
3799 3792
3800 if (functionType == NotTexSubImage2D) { 3793 if (functionType == NotTexSubImage2D) {
3801 if (level && WebGLTexture::isNPOT(width, height)) { 3794 if (level && WebGLTexture::isNPOT(width, height)) {
3802 synthesizeGLError(GraphicsContext3D::INVALID_VALUE, functionName, "l evel > 0 not power of 2"); 3795 synthesizeGLError(GraphicsContext3D::INVALID_VALUE, functionName, "l evel > 0 not power of 2");
(...skipping 2289 matching lines...) Expand 10 before | Expand all | Expand 10 after
6092 bool WebGLRenderingContext::supportsDrawBuffers() 6085 bool WebGLRenderingContext::supportsDrawBuffers()
6093 { 6086 {
6094 if (!m_drawBuffersWebGLRequirementsChecked) { 6087 if (!m_drawBuffersWebGLRequirementsChecked) {
6095 m_drawBuffersWebGLRequirementsChecked = true; 6088 m_drawBuffersWebGLRequirementsChecked = true;
6096 m_drawBuffersSupported = EXTDrawBuffers::supported(this); 6089 m_drawBuffersSupported = EXTDrawBuffers::supported(this);
6097 } 6090 }
6098 return m_drawBuffersSupported; 6091 return m_drawBuffersSupported;
6099 } 6092 }
6100 6093
6101 } // namespace WebCore 6094 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698