summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--video/out/opengl/osd.c4
-rw-r--r--video/out/opengl/utils.c15
-rw-r--r--video/out/opengl/utils.h6
-rw-r--r--video/out/opengl/video.c4
4 files changed, 13 insertions, 16 deletions
diff --git a/video/out/opengl/osd.c b/video/out/opengl/osd.c
index e28bafa75e..2d4d51ab6a 100644
--- a/video/out/opengl/osd.c
+++ b/video/out/opengl/osd.c
@@ -181,8 +181,8 @@ static bool upload(struct mpgl_osd *ctx, struct mpgl_osd_part *osd,
}
}
- glUploadTex(gl, GL_TEXTURE_2D, fmt->format, fmt->type, texdata, stride,
- bb[0].x, bb[0].y, bb[1].x - bb[0].x, bb[1].y - bb[0].y, 0);
+ gl_upload_tex(gl, GL_TEXTURE_2D, fmt->format, fmt->type, texdata, stride,
+ bb[0].x, bb[0].y, bb[1].x - bb[0].x, bb[1].y - bb[0].y);
if (pbo)
gl->BindBuffer(GL_PIXEL_UNPACK_BUFFER, 0);
diff --git a/video/out/opengl/utils.c b/video/out/opengl/utils.c
index 76e119b8f7..afc768b0d2 100644
--- a/video/out/opengl/utils.c
+++ b/video/out/opengl/utils.c
@@ -67,25 +67,22 @@ static int get_alignment(int stride)
// format, type: texture parameters
// dataptr, stride: image data
// x, y, width, height: part of the image to upload
-// slice: height of an upload slice, 0 for all at once
-void glUploadTex(GL *gl, GLenum target, GLenum format, GLenum type,
- const void *dataptr, int stride,
- int x, int y, int w, int h, int slice)
+void gl_upload_tex(GL *gl, GLenum target, GLenum format, GLenum type,
+ const void *dataptr, int stride,
+ int x, int y, int w, int h)
{
int bpp = gl_bytes_per_pixel(format, type);
const uint8_t *data = dataptr;
int y_max = y + h;
if (w <= 0 || h <= 0 || !bpp)
return;
- if (slice <= 0)
- slice = h;
if (stride < 0) {
data += (h - 1) * stride;
stride = -stride;
}
gl->PixelStorei(GL_UNPACK_ALIGNMENT, get_alignment(stride));
- bool use_rowlength = slice > 1 && (gl->mpgl_caps & MPGL_CAP_ROW_LENGTH);
- if (use_rowlength) {
+ int slice = h;
+ if (gl->mpgl_caps & MPGL_CAP_ROW_LENGTH) {
// this is not always correct, but should work for MPlayer
gl->PixelStorei(GL_UNPACK_ROW_LENGTH, stride / bpp);
} else {
@@ -98,7 +95,7 @@ void glUploadTex(GL *gl, GLenum target, GLenum format, GLenum type,
}
if (y < y_max)
gl->TexSubImage2D(target, 0, x, y, w, y_max - y, format, type, data);
- if (use_rowlength)
+ if (gl->mpgl_caps & MPGL_CAP_ROW_LENGTH)
gl->PixelStorei(GL_UNPACK_ROW_LENGTH, 0);
gl->PixelStorei(GL_UNPACK_ALIGNMENT, 4);
}
diff --git a/video/out/opengl/utils.h b/video/out/opengl/utils.h
index ef1cc8bbc0..1e069f4455 100644
--- a/video/out/opengl/utils.h
+++ b/video/out/opengl/utils.h
@@ -26,9 +26,9 @@ struct mp_log;
void glCheckError(GL *gl, struct mp_log *log, const char *info);
-void glUploadTex(GL *gl, GLenum target, GLenum format, GLenum type,
- const void *dataptr, int stride,
- int x, int y, int w, int h, int slice);
+void gl_upload_tex(GL *gl, GLenum target, GLenum format, GLenum type,
+ const void *dataptr, int stride,
+ int x, int y, int w, int h);
mp_image_t *glGetWindowScreenshot(GL *gl);
diff --git a/video/out/opengl/video.c b/video/out/opengl/video.c
index edf7c7d1f6..97c92b0ae8 100644
--- a/video/out/opengl/video.c
+++ b/video/out/opengl/video.c
@@ -2956,8 +2956,8 @@ static bool gl_video_upload_image(struct gl_video *p, struct mp_image *mpi)
gl->BindBuffer(GL_PIXEL_UNPACK_BUFFER, plane->gl_buffer);
gl->ActiveTexture(GL_TEXTURE0 + n);
gl->BindTexture(plane->gl_target, plane->gl_texture);
- glUploadTex(gl, plane->gl_target, plane->gl_format, plane->gl_type,
- mpi->planes[n], mpi->stride[n], 0, 0, plane->w, plane->h, 0);
+ gl_upload_tex(gl, plane->gl_target, plane->gl_format, plane->gl_type,
+ mpi->planes[n], mpi->stride[n], 0, 0, plane->w, plane->h);
}
gl->ActiveTexture(GL_TEXTURE0);
if (pbo)