2
* Mesa 3-D graphics library
4
* Copyright (C) 2011 VMware, Inc. All Rights Reserved.
6
* Permission is hereby granted, free of charge, to any person obtaining a
7
* copy of this software and associated documentation files (the "Software"),
8
* to deal in the Software without restriction, including without limitation
9
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
10
* and/or sell copies of the Software, and to permit persons to whom the
11
* Software is furnished to do so, subject to the following conditions:
13
* The above copyright notice and this permission notice shall be included
14
* in all copies or substantial portions of the Software.
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
* OTHER DEALINGS IN THE SOFTWARE.
30
* \name Internal functions
35
* Texture width, height and depth check shared with the
36
* multisample variants of TexStorage functions.
38
* From OpenGL 4.5 Core spec, page 260 (section 8.19)
40
* "An INVALID_VALUE error is generated if width, height, depth
41
* or levels are less than 1, for commands with the corresponding
44
* (referring to TextureStorage* commands, these also match values
45
* specified for OpenGL ES 3.1.)
48
_mesa_valid_tex_storage_dim(GLsizei width, GLsizei height, GLsizei depth)
50
if (width < 1 || height < 1 || depth < 1)
58
_mesa_is_legal_tex_storage_format(const struct gl_context *ctx,
59
GLenum internalformat);
62
_mesa_is_legal_tex_storage_target(const struct gl_context *ctx,
63
GLuint dims, GLenum target);
66
_mesa_texture_storage_memory(struct gl_context *ctx, GLuint dims,
67
struct gl_texture_object *texObj,
68
struct gl_memory_object *memObj,
69
GLenum target, GLsizei levels,
70
GLenum internalformat, GLsizei width,
71
GLsizei height, GLsizei depth,
72
GLuint64 offset, bool dsa);
74
#endif /* TEXSTORAGE_H */