diff options
author | Brian Paul <brianp@vmware.com> | 2015-05-22 17:26:12 -0700 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2015-05-26 09:58:09 -0600 |
commit | dce53a7d2453c0b2b69a345340455866e75f0a8d (patch) | |
tree | 7eba345555e3753e20525f0814b8518e0c80885d /src/mesa/main/copyimage.c | |
parent | 0b76541ce0cc34020ef1057a17149cbf9cb3dbe1 (diff) | |
download | external_mesa3d-dce53a7d2453c0b2b69a345340455866e75f0a8d.zip external_mesa3d-dce53a7d2453c0b2b69a345340455866e75f0a8d.tar.gz external_mesa3d-dce53a7d2453c0b2b69a345340455866e75f0a8d.tar.bz2 |
mesa: add some comments in copyimage.c
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Diffstat (limited to 'src/mesa/main/copyimage.c')
-rw-r--r-- | src/mesa/main/copyimage.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/mesa/main/copyimage.c b/src/mesa/main/copyimage.c index 789f9a6..e8732c6 100644 --- a/src/mesa/main/copyimage.c +++ b/src/mesa/main/copyimage.c @@ -40,6 +40,19 @@ enum mesa_block_class { BLOCK_CLASS_64_BITS }; +/** + * Prepare the source or destination resource, including: + * - Error checking + * - Creating texture wrappers for renderbuffers + * \param name the texture or renderbuffer name + * \param target GL_TEXTURE target or GL_RENDERBUFFER. For the later, will + * be changed to a compatible GL_TEXTURE target. + * \param level mipmap level + * \param tex_obj returns a pointer to a texture object + * \param tex_image returns a pointer to a texture image + * \param tmp_tex returns temporary texture object name + * \return true if success, false if error + */ static bool prepare_target(struct gl_context *ctx, GLuint name, GLenum *target, int level, struct gl_texture_object **tex_obj, @@ -167,6 +180,12 @@ prepare_target(struct gl_context *ctx, GLuint name, GLenum *target, int level, return true; } + +/** + * Check that the x,y,z,width,height,region is within the texture image + * dimensions. + * \return true if bounds OK, false if regions is out of bounds + */ static bool check_region_bounds(struct gl_context *ctx, const struct gl_texture_image *tex_image, @@ -187,6 +206,7 @@ check_region_bounds(struct gl_context *ctx, return false; } + /* Check X direction */ if (x + width > tex_image->Width) { _mesa_error(ctx, GL_INVALID_VALUE, "glCopyImageSubData(%sX or %sWidth exceeds image bounds)", @@ -194,6 +214,7 @@ check_region_bounds(struct gl_context *ctx, return false; } + /* Check Y direction */ switch (tex_image->TexObject->Target) { case GL_TEXTURE_1D: case GL_TEXTURE_1D_ARRAY: @@ -214,6 +235,7 @@ check_region_bounds(struct gl_context *ctx, break; } + /* Check Z direction */ switch (tex_image->TexObject->Target) { case GL_TEXTURE_1D: case GL_TEXTURE_2D: |