summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.dev>2023-01-16 20:48:19 +0100
committerNiklas Haas <github-daiK1o@haasn.dev>2023-05-27 11:37:48 +0200
commitb216c09ade7b56efb97fe82754b72b1620f67098 (patch)
tree7ddb2e078a271a88410f1b487cfd1d2d9b2e8921 /video
parent9fd4ae9529f749010cfd26e58ad2a7141f63b609 (diff)
downloadmpv-b216c09ade7b56efb97fe82754b72b1620f67098.tar.bz2
mpv-b216c09ade7b56efb97fe82754b72b1620f67098.tar.xz
opengl: move `ra_gl_ctx_params.flipped` to `struct GL`
This is motivated by a need to access it from vo_gpu_next's opengl wrapping code, and justified by it being an inherent property of the GL context itself,
Diffstat (limited to 'video')
-rw-r--r--video/out/opengl/common.h5
-rw-r--r--video/out/opengl/context.c2
-rw-r--r--video/out/opengl/context.h5
-rw-r--r--video/out/opengl/context_angle.c2
-rw-r--r--video/out/opengl/context_dxinterop.c2
5 files changed, 8 insertions, 8 deletions
diff --git a/video/out/opengl/common.h b/video/out/opengl/common.h
index 35535322ad..a6b02c9366 100644
--- a/video/out/opengl/common.h
+++ b/video/out/opengl/common.h
@@ -88,6 +88,11 @@ struct GL {
int mpgl_caps; // Bitfield of MPGL_CAP_* constants
bool debug_context; // use of e.g. GLX_CONTEXT_DEBUG_BIT_ARB
+ // Set to false if the implementation follows normal GL semantics, which is
+ // upside down. Set to true if it does *not*, i.e. if rendering is right
+ // side up
+ bool flipped;
+
// Copy of function pointer used to load GL.
// Caution: Not necessarily valid to use after VO init has completed!
void *(*get_fn)(void *ctx, const char *n);
diff --git a/video/out/opengl/context.c b/video/out/opengl/context.c
index 2162c459d6..c2b7312c6b 100644
--- a/video/out/opengl/context.c
+++ b/video/out/opengl/context.c
@@ -238,7 +238,7 @@ bool ra_gl_ctx_start_frame(struct ra_swapchain *sw, struct ra_fbo *out_fbo)
return true;
*out_fbo = (struct ra_fbo) {
.tex = p->wrapped_fb,
- .flip = !p->params.flipped, // OpenGL FBs are normally flipped
+ .flip = !p->gl->flipped, // OpenGL FBs are normally flipped
};
return true;
}
diff --git a/video/out/opengl/context.h b/video/out/opengl/context.h
index 19521ff54b..c96450ebd5 100644
--- a/video/out/opengl/context.h
+++ b/video/out/opengl/context.h
@@ -34,11 +34,6 @@ struct ra_gl_ctx_params {
// See ra_swapchain_fns.get_vsync.
void (*get_vsync)(struct ra_ctx *ctx, struct vo_vsync_info *info);
- // Set to false if the implementation follows normal GL semantics, which is
- // upside down. Set to true if it does *not*, i.e. if rendering is right
- // side up
- bool flipped;
-
// If this is set to non-NULL, then the ra_gl_ctx will consider the GL
// implementation to be using an external swapchain, which disables the
// software simulation of --swapchain-depth. Any functions defined by this
diff --git a/video/out/opengl/context_angle.c b/video/out/opengl/context_angle.c
index 77a33f6bb1..f5cc2c5ed6 100644
--- a/video/out/opengl/context_angle.c
+++ b/video/out/opengl/context_angle.c
@@ -605,10 +605,10 @@ static bool angle_init(struct ra_ctx *ctx)
};
struct ra_gl_ctx_params params = {
.swap_buffers = angle_swap_buffers,
- .flipped = p->flipped,
.external_swapchain = p->dxgi_swapchain ? &dxgi_swapchain_fns : NULL,
};
+ gl->flipped = p->flipped;
if (!ra_gl_ctx_init(ctx, gl, params))
goto fail;
diff --git a/video/out/opengl/context_dxinterop.c b/video/out/opengl/context_dxinterop.c
index 5764254cc1..cda696f71b 100644
--- a/video/out/opengl/context_dxinterop.c
+++ b/video/out/opengl/context_dxinterop.c
@@ -555,10 +555,10 @@ static bool dxgl_init(struct ra_ctx *ctx)
static const struct ra_swapchain_fns empty_swapchain_fns = {0};
struct ra_gl_ctx_params params = {
.swap_buffers = dxgl_swap_buffers,
- .flipped = true,
.external_swapchain = &empty_swapchain_fns,
};
+ gl->flipped = true;
if (!ra_gl_ctx_init(ctx, gl, params))
goto fail;