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

Side by Side Diff: third_party/WebKit/Source/modules/webgl/WebGLTexture.cpp

Issue 1468883002: Fix the crash of compressedTexImage3D for the WebGL2 conformance test page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add the check validation of level. Created 5 years 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 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 } 279 }
280 280
281 bool WebGLTexture::isValid(GLenum target, GLint level) const 281 bool WebGLTexture::isValid(GLenum target, GLint level) const
282 { 282 {
283 const LevelInfo* info = getLevelInfo(target, level); 283 const LevelInfo* info = getLevelInfo(target, level);
284 if (!info) 284 if (!info)
285 return 0; 285 return 0;
286 return info->valid; 286 return info->valid;
287 } 287 }
288 288
289 bool WebGLTexture::isValidLevel(GLenum target, GLint level) const
290 {
291 if (!object() || !m_target)
292 return false;
293 int targetIndex = mapTargetToIndex(target);
294 if (targetIndex < 0 || targetIndex >= static_cast<int>(m_info.size()))
295 return false;
296 if (level < 0 || level >= static_cast<GLint>(m_info[targetIndex].size()))
297 return false;
298 return true;
299 }
300
289 bool WebGLTexture::isNPOT(GLsizei width, GLsizei height) 301 bool WebGLTexture::isNPOT(GLsizei width, GLsizei height)
290 { 302 {
291 ASSERT(width >= 0 && height >= 0); 303 ASSERT(width >= 0 && height >= 0);
292 if (!width || !height) 304 if (!width || !height)
293 return false; 305 return false;
294 if ((width & (width - 1)) || (height & (height - 1))) 306 if ((width & (width - 1)) || (height & (height - 1)))
295 return true; 307 return true;
296 return false; 308 return false;
297 } 309 }
298 310
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: 606 case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
595 case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT: 607 case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
596 case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: 608 case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
597 return GL_UNSIGNED_BYTE; 609 return GL_UNSIGNED_BYTE;
598 default: 610 default:
599 return GL_NONE; 611 return GL_NONE;
600 } 612 }
601 } 613 }
602 614
603 } // namespace blink 615 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698