Lines Matching full:ctx
75 get_tex_depth(struct gl_context *ctx, GLuint dimensions,
86 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetTexImage");
95 ctx->Driver.MapTextureImage(ctx, texImage, img,
101 void *dest = _mesa_image_address(dimensions, &ctx->Pack, pixels,
106 _mesa_pack_depth_span(ctx, width, dest, type, depthRow, &ctx->Pack);
109 ctx->Driver.UnmapTextureImage(ctx, texImage, img);
112 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetTexImage");
125 get_tex_depth_stencil(struct gl_context *ctx, GLuint dimensions,
139 ctx->Driver.MapTextureImage(ctx, texImage, img,
146 void *dest = _mesa_image_address(dimensions, &ctx->Pack, pixels,
151 if (ctx->Pack.SwapBytes) {
156 ctx->Driver.UnmapTextureImage(ctx, texImage, img);
159 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetTexImage");
170 get_tex_ycbcr(struct gl_context *ctx, GLuint dimensions,
184 ctx->Driver.MapTextureImage(ctx, texImage, img,
191 void *dest = _mesa_image_address(dimensions, &ctx->Pack, pixels,
201 if (!ctx->Pack.SwapBytes)
204 else if (ctx->Pack.SwapBytes) {
209 ctx->Driver.UnmapTextureImage(ctx, texImage, img);
212 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetTexImage");
223 get_tex_rgba_compressed(struct gl_context *ctx, GLuint dimensions,
232 const GLenum destBaseFormat = _mesa_base_tex_format(ctx, format);
244 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetTexImage()");
253 ctx->Driver.MapTextureImage(ctx, texImage, 0,
261 ctx->Driver.UnmapTextureImage(ctx, texImage, 0);
264 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetTexImage");
300 void *dest = _mesa_image_address(dimensions, &ctx->Pack, pixels,
304 _mesa_pack_rgba_span_float(ctx, width, (GLfloat (*)[4]) srcRow,
305 format, type, dest, &ctx->Pack, transferOps);
317 get_tex_rgba_uncompressed(struct gl_context *ctx, GLuint dimensions,
326 const GLenum destBaseFormat = _mesa_base_tex_format(ctx, format);
340 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetTexImage()");
377 ctx->Driver.MapTextureImage(ctx, texImage, img,
383 void *dest = _mesa_image_address(dimensions, &ctx->Pack, pixels,
392 _mesa_pack_rgba_span_from_uints(ctx, width,
396 _mesa_pack_rgba_span_from_ints(ctx, width,
404 _mesa_pack_rgba_span_float(ctx, width, (GLfloat (*)[4]) rgba,
406 &ctx->Pack, transferOps);
411 ctx->Driver.UnmapTextureImage(ctx, texImage, img);
414 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetTexImage");
428 get_tex_rgba(struct gl_context *ctx, GLuint dimensions,
449 get_tex_rgba_compressed(ctx, dimensions, format, type,
453 get_tex_rgba_uncompressed(ctx, dimensions, format, type,
464 get_tex_memcpy(struct gl_context *ctx, GLenum format, GLenum type,
482 ctx->Pack.SwapBytes);
489 _mesa_image_address2d(&ctx->Pack, pixels, texImage->Width,
492 _mesa_image_row_stride(&ctx->Pack, texImage->Width, format, type);
497 ctx->Driver.MapTextureImage(ctx, texImage, 0,
515 ctx->Driver.UnmapTextureImage(ctx, texImage, 0);
518 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetTexImage");
529 * We'll call ctx->Driver.MapTextureImage() to access the data, then
530 * unmap with ctx->Driver.UnmapTextureImage().
533 _mesa_get_teximage(struct gl_context *ctx,
551 if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
559 ctx->Driver.MapBufferRange(ctx, 0, ctx->Pack.BufferObj->Size,
560 GL_MAP_WRITE_BIT, ctx->Pack.BufferObj);
563 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetTexImage(map PBO failed)");
572 if (get_tex_memcpy(ctx, format, type, pixels, texImage)) {
576 get_tex_depth(ctx, dimensions, format, type, pixels, texImage);
579 get_tex_depth_stencil(ctx, dimensions, format, type, pixels, texImage);
582 get_tex_ycbcr(ctx, dimensions, format, type, pixels, texImage);
585 get_tex_rgba(ctx, dimensions, format, type, pixels, texImage);
588 if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
589 ctx->Driver.UnmapBuffer(ctx, ctx->Pack.BufferObj);
600 _mesa_get_compressed_teximage(struct gl_context *ctx,
610 if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
613 ctx->Driver.MapBufferRange(ctx, 0, ctx->Pack.BufferObj->Size,
614 GL_MAP_WRITE_BIT, ctx->Pack.BufferObj);
617 _mesa_error(ctx, GL_OUT_OF_MEMORY,
625 ctx->Driver.MapTextureImage(ctx, texImage, 0,
649 ctx->Driver.UnmapTextureImage(ctx, texImage, 0);
652 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGetCompresssedTexImage");
655 if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
656 ctx->Driver.UnmapBuffer(ctx, ctx->Pack.BufferObj);
666 legal_getteximage_target(struct gl_context *ctx, GLenum target)
679 return ctx->Extensions.ARB_texture_cube_map;
681 return ctx->Extensions.NV_texture_rectangle;
684 return (ctx->Extensions.MESA_texture_array ||
685 ctx->Extensions.EXT_texture_array);
697 getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level,
703 const GLint maxLevels = _mesa_max_texture_levels(ctx, target);
707 if (!legal_getteximage_target(ctx, target)) {
708 _mesa_error(ctx, GL_INVALID_ENUM, "glGetTexImage(target=0x%x)", target);
714 _mesa_error( ctx, GL_INVALID_VALUE, "glGetTexImage(level)" );
718 err = _mesa_error_check_format_and_type(ctx, format, type);
720 _mesa_error(ctx, err, "glGetTexImage(format/type)");
724 texObj = _mesa_get_current_tex_object(ctx, target);
727 _mesa_error(ctx, GL_INVALID_ENUM, "glGetTexImage(target)");
731 texImage = _mesa_select_tex_image(ctx, texObj, target, level);
744 _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexImage(format mismatch)");
750 _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexImage(format mismatch)");
755 _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexImage(format mismatch)");
760 _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexImage(format mismatch)");
765 _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexImage(format mismatch)");
769 if (!_mesa_validate_pbo_access(dimensions, &ctx->Pack, texImage->Width,
772 if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
773 _mesa_error(ctx, GL_INVALID_OPERATION,
776 _mesa_error(ctx, GL_INVALID_OPERATION,
783 if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
785 if (_mesa_bufferobj_mapped(ctx->Pack.BufferObj)) {
786 _mesa_error(ctx, GL_INVALID_OPERATION,
813 GET_CURRENT_CONTEXT(ctx);
814 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
816 if (getteximage_error_check(ctx, target, level, format, type,
821 if (!_mesa_is_bufferobj(ctx->Pack.BufferObj) && !pixels) {
826 texObj = _mesa_get_current_tex_object(ctx, target);
827 texImage = _mesa_select_tex_image(ctx, texObj, target, level);
833 _mesa_debug(ctx, "glGetTexImage(tex %u) format = %s, w=%d, h=%d,"
841 _mesa_lock_texture(ctx, texObj);
843 ctx->Driver.GetTexImage(ctx, format, type, pixels, texImage);
845 _mesa_unlock_texture(ctx, texObj);
862 getcompressedteximage_error_check(struct gl_context *ctx, GLenum target,
867 const GLint maxLevels = _mesa_max_texture_levels(ctx, target);
870 if (!legal_getteximage_target(ctx, target)) {
871 _mesa_error(ctx, GL_INVALID_ENUM, "glGetCompressedTexImage(target=0x%x)",
878 _mesa_error(ctx, GL_INVALID_VALUE,
883 texObj = _mesa_get_current_tex_object(ctx, target);
885 _mesa_error(ctx, GL_INVALID_ENUM, "glGetCompressedTexImageARB(target)");
889 texImage = _mesa_select_tex_image(ctx, texObj, target, level);
893 _mesa_error(ctx, GL_INVALID_VALUE,
899 _mesa_error(ctx, GL_INVALID_OPERATION,
909 if (!_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
912 _mesa_error(ctx, GL_INVALID_OPERATION,
920 (const GLubyte *) ctx->Pack.BufferObj->Size) {
921 _mesa_error(ctx, GL_INVALID_OPERATION,
927 if (_mesa_bufferobj_mapped(ctx->Pack.BufferObj)) {
928 _mesa_error(ctx, GL_INVALID_OPERATION,
944 GET_CURRENT_CONTEXT(ctx);
945 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
947 if (getcompressedteximage_error_check(ctx, target, level, bufSize, img)) {
951 if (!_mesa_is_bufferobj(ctx->Pack.BufferObj) && !img) {
956 texObj = _mesa_get_current_tex_object(ctx, target);
957 texImage = _mesa_select_tex_image(ctx, texObj, target, level);
963 _mesa_debug(ctx,
970 _mesa_lock_texture(ctx, texObj);
972 ctx->Driver.GetCompressedTexImage(ctx, texImage, img);
974 _mesa_unlock_texture(ctx, texObj);