wined3d: Use the core gl*CompressedTex* functions.
This commit is contained in:
parent
5883c9ece3
commit
6bb32e47ff
|
@ -2878,9 +2878,14 @@ static void load_gl_funcs(struct wined3d_gl_info *gl_info)
|
||||||
USE_GL_FUNC(glBufferData) /* OpenGL 1.5 */
|
USE_GL_FUNC(glBufferData) /* OpenGL 1.5 */
|
||||||
USE_GL_FUNC(glBufferSubData) /* OpenGL 1.5 */
|
USE_GL_FUNC(glBufferSubData) /* OpenGL 1.5 */
|
||||||
USE_GL_FUNC(glColorMaski) /* OpenGL 3.0 */
|
USE_GL_FUNC(glColorMaski) /* OpenGL 3.0 */
|
||||||
|
USE_GL_FUNC(glCompressedTexImage2D) /* OpenGL 1.3 */
|
||||||
|
USE_GL_FUNC(glCompressedTexImage3D) /* OpenGL 1.3 */
|
||||||
|
USE_GL_FUNC(glCompressedTexSubImage2D) /* OpenGL 1.3 */
|
||||||
|
USE_GL_FUNC(glCompressedTexSubImage3D) /* OpenGL 1.3 */
|
||||||
USE_GL_FUNC(glDeleteBuffers) /* OpenGL 1.5 */
|
USE_GL_FUNC(glDeleteBuffers) /* OpenGL 1.5 */
|
||||||
USE_GL_FUNC(glGenBuffers) /* OpenGL 1.5 */
|
USE_GL_FUNC(glGenBuffers) /* OpenGL 1.5 */
|
||||||
USE_GL_FUNC(glGetBufferSubData) /* OpenGL 1.5 */
|
USE_GL_FUNC(glGetBufferSubData) /* OpenGL 1.5 */
|
||||||
|
USE_GL_FUNC(glGetCompressedTexImage) /* OpenGL 1.3 */
|
||||||
USE_GL_FUNC(glMapBuffer) /* OpenGL 1.5 */
|
USE_GL_FUNC(glMapBuffer) /* OpenGL 1.5 */
|
||||||
USE_GL_FUNC(glUnmapBuffer) /* OpenGL 1.5 */
|
USE_GL_FUNC(glUnmapBuffer) /* OpenGL 1.5 */
|
||||||
#undef USE_GL_FUNC
|
#undef USE_GL_FUNC
|
||||||
|
@ -2907,9 +2912,14 @@ static void load_gl_funcs(struct wined3d_gl_info *gl_info)
|
||||||
MAP_GL_FUNCTION(glBufferData, glBufferDataARB);
|
MAP_GL_FUNCTION(glBufferData, glBufferDataARB);
|
||||||
MAP_GL_FUNCTION(glBufferSubData, glBufferSubDataARB);
|
MAP_GL_FUNCTION(glBufferSubData, glBufferSubDataARB);
|
||||||
MAP_GL_FUNCTION(glColorMaski, glColorMaskIndexedEXT);
|
MAP_GL_FUNCTION(glColorMaski, glColorMaskIndexedEXT);
|
||||||
|
MAP_GL_FUNCTION(glCompressedTexImage2D, glCompressedTexImage2DARB);
|
||||||
|
MAP_GL_FUNCTION(glCompressedTexImage3D, glCompressedTexImage3DARB);
|
||||||
|
MAP_GL_FUNCTION(glCompressedTexSubImage2D, glCompressedTexSubImage2DARB);
|
||||||
|
MAP_GL_FUNCTION(glCompressedTexSubImage3D, glCompressedTexSubImage3DARB);
|
||||||
MAP_GL_FUNCTION(glDeleteBuffers, glDeleteBuffersARB);
|
MAP_GL_FUNCTION(glDeleteBuffers, glDeleteBuffersARB);
|
||||||
MAP_GL_FUNCTION(glGenBuffers, glGenBuffersARB);
|
MAP_GL_FUNCTION(glGenBuffers, glGenBuffersARB);
|
||||||
MAP_GL_FUNCTION(glGetBufferSubData, glGetBufferSubDataARB);
|
MAP_GL_FUNCTION(glGetBufferSubData, glGetBufferSubDataARB);
|
||||||
|
MAP_GL_FUNCTION(glGetCompressedTexImage, glGetCompressedTexImageARB);
|
||||||
MAP_GL_FUNCTION(glMapBuffer, glMapBufferARB);
|
MAP_GL_FUNCTION(glMapBuffer, glMapBufferARB);
|
||||||
MAP_GL_FUNCTION(glUnmapBuffer, glUnmapBufferARB);
|
MAP_GL_FUNCTION(glUnmapBuffer, glUnmapBufferARB);
|
||||||
#undef MAP_GL_FUNCTION
|
#undef MAP_GL_FUNCTION
|
||||||
|
|
|
@ -1334,23 +1334,23 @@ static void surface_download_data(struct wined3d_surface *surface, const struct
|
||||||
|
|
||||||
if (format->flags & WINED3DFMT_FLAG_COMPRESSED)
|
if (format->flags & WINED3DFMT_FLAG_COMPRESSED)
|
||||||
{
|
{
|
||||||
TRACE("(%p) : Calling glGetCompressedTexImageARB level %d, format %#x, type %#x, data %p.\n",
|
TRACE("(%p) : Calling glGetCompressedTexImage level %d, format %#x, type %#x, data %p.\n",
|
||||||
surface, surface->texture_level, format->glFormat, format->glType, data.addr);
|
surface, surface->texture_level, format->glFormat, format->glType, data.addr);
|
||||||
|
|
||||||
if (data.buffer_object)
|
if (data.buffer_object)
|
||||||
{
|
{
|
||||||
GL_EXTCALL(glBindBuffer(GL_PIXEL_PACK_BUFFER, data.buffer_object));
|
GL_EXTCALL(glBindBuffer(GL_PIXEL_PACK_BUFFER, data.buffer_object));
|
||||||
checkGLcall("glBindBuffer");
|
checkGLcall("glBindBuffer");
|
||||||
GL_EXTCALL(glGetCompressedTexImageARB(surface->texture_target, surface->texture_level, NULL));
|
GL_EXTCALL(glGetCompressedTexImage(surface->texture_target, surface->texture_level, NULL));
|
||||||
checkGLcall("glGetCompressedTexImageARB");
|
checkGLcall("glGetCompressedTexImage");
|
||||||
GL_EXTCALL(glBindBuffer(GL_PIXEL_PACK_BUFFER, 0));
|
GL_EXTCALL(glBindBuffer(GL_PIXEL_PACK_BUFFER, 0));
|
||||||
checkGLcall("glBindBuffer");
|
checkGLcall("glBindBuffer");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GL_EXTCALL(glGetCompressedTexImageARB(surface->texture_target,
|
GL_EXTCALL(glGetCompressedTexImage(surface->texture_target,
|
||||||
surface->texture_level, data.addr));
|
surface->texture_level, data.addr));
|
||||||
checkGLcall("glGetCompressedTexImageARB");
|
checkGLcall("glGetCompressedTexImage");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1515,30 +1515,30 @@ void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct w
|
||||||
else
|
else
|
||||||
internal = format->glInternal;
|
internal = format->glInternal;
|
||||||
|
|
||||||
TRACE("glCompressedTexSubImage2DARB, target %#x, level %d, x %d, y %d, w %d, h %d, "
|
TRACE("glCompressedTexSubImage2D, target %#x, level %d, x %d, y %d, w %d, h %d, "
|
||||||
"format %#x, image_size %#x, addr %p.\n", surface->texture_target, surface->texture_level,
|
"format %#x, image_size %#x, addr %p.\n", surface->texture_target, surface->texture_level,
|
||||||
dst_point->x, dst_point->y, update_w, update_h, internal, row_count * row_length, addr);
|
dst_point->x, dst_point->y, update_w, update_h, internal, row_count * row_length, addr);
|
||||||
|
|
||||||
if (row_length == src_pitch)
|
if (row_length == src_pitch)
|
||||||
{
|
{
|
||||||
GL_EXTCALL(glCompressedTexSubImage2DARB(surface->texture_target, surface->texture_level,
|
GL_EXTCALL(glCompressedTexSubImage2D(surface->texture_target, surface->texture_level,
|
||||||
dst_point->x, dst_point->y, update_w, update_h, internal, row_count * row_length, addr));
|
dst_point->x, dst_point->y, update_w, update_h, internal, row_count * row_length, addr));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UINT row, y;
|
UINT row, y;
|
||||||
|
|
||||||
/* glCompressedTexSubImage2DARB() ignores pixel store state, so we
|
/* glCompressedTexSubImage2D() ignores pixel store state, so we
|
||||||
* can't use the unpack row length like below. */
|
* can't use the unpack row length like for glTexSubImage2D. */
|
||||||
for (row = 0, y = dst_point->y; row < row_count; ++row)
|
for (row = 0, y = dst_point->y; row < row_count; ++row)
|
||||||
{
|
{
|
||||||
GL_EXTCALL(glCompressedTexSubImage2DARB(surface->texture_target, surface->texture_level,
|
GL_EXTCALL(glCompressedTexSubImage2D(surface->texture_target, surface->texture_level,
|
||||||
dst_point->x, y, update_w, format->block_height, internal, row_length, addr));
|
dst_point->x, y, update_w, format->block_height, internal, row_length, addr));
|
||||||
y += format->block_height;
|
y += format->block_height;
|
||||||
addr += src_pitch;
|
addr += src_pitch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
checkGLcall("glCompressedTexSubImage2DARB");
|
checkGLcall("glCompressedTexSubImage2D");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -885,9 +885,9 @@ static void texture2d_prepare_texture(struct wined3d_texture *texture, struct wi
|
||||||
|
|
||||||
if (format->flags & WINED3DFMT_FLAG_COMPRESSED && mem)
|
if (format->flags & WINED3DFMT_FLAG_COMPRESSED && mem)
|
||||||
{
|
{
|
||||||
GL_EXTCALL(glCompressedTexImage2DARB(surface->texture_target, surface->texture_level,
|
GL_EXTCALL(glCompressedTexImage2D(surface->texture_target, surface->texture_level,
|
||||||
internal, width, height, 0, surface->resource.size, mem));
|
internal, width, height, 0, surface->resource.size, mem));
|
||||||
checkGLcall("glCompressedTexImage2DARB");
|
checkGLcall("glCompressedTexImage2D");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue