1 /* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef GLES_VALIDATION_H 18 #define GLES_VALIDATION_H 19 20 #include <GLES2/gl2.h> 21 #include <GLES2/gl2ext.h> 22 #include <GLES2/gl2platform.h> 23 24 #include <GLES3/gl3.h> 25 #include <GLES3/gl31.h> 26 27 #include "GL2Encoder.h" 28 29 #include <string> 30 31 namespace GLESv2Validation { 32 33 extern GLbitfield allBufferMapAccessFlags; 34 bool bufferTarget(GL2Encoder* ctx, GLenum target); 35 bool bufferParam(GL2Encoder* ctx, GLenum param); 36 37 bool pixelStoreParam(GL2Encoder* ctx, GLenum param); 38 bool pixelStoreValue(GLenum param, GLint value); 39 40 bool rboFormat(GL2Encoder* ctx, GLenum internalformat); 41 42 bool framebufferTarget(GL2Encoder* ctx, GLenum target); 43 bool framebufferAttachment(GL2Encoder* ctx, GLenum attachment); 44 45 bool readPixelsFormat(GLenum format); 46 bool readPixelsType(GLenum type); 47 48 bool vertexAttribType(GL2Encoder* ctx, GLenum type); 49 50 bool readPixelsFboFormatMatch(GLenum format, GLenum type, GLenum fboTexType); 51 bool blitFramebufferFormat(GLenum readFormat, GLenum drawFormat); 52 53 bool textureTarget(GL2Encoder* ctx, GLenum target); 54 55 GLsizei compressedTexImageSize(GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); 56 57 bool isCompressedFormat(GLenum internalformat); 58 bool supportedCompressedFormat(GL2Encoder* ctx, GLenum internalformat); 59 60 bool unsizedFormat(GLenum format); 61 62 bool filterableTexFormat(GL2Encoder* ctx, GLenum internalformat); 63 bool colorRenderableFormat(GL2Encoder* ctx, GLenum internalformat); 64 bool depthRenderableFormat(GL2Encoder* ctx, GLenum internalformat); 65 bool stencilRenderableFormat(GL2Encoder* ctx, GLenum internalformat); 66 67 bool isCubeMapTarget(GLenum target); 68 69 bool pixelType(GL2Encoder* ctx, GLenum type); 70 bool pixelFormat(GL2Encoder* ctx, GLenum format); 71 72 bool pixelInternalFormat(GLenum internalformat); 73 74 bool shaderType(GL2Encoder* ctx, GLenum type); 75 76 bool internalFormatTarget(GL2Encoder* ctx, GLenum target); 77 78 std::string vertexAttribIndexRangeErrorMsg(GL2Encoder* ctx, GLuint index); 79 80 } // namespace GLESv2Validation 81 82 #endif 83