summaryrefslogtreecommitdiffstats
path: root/video/out/gpu/context.h
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.xyz>2017-09-20 10:45:33 +0200
committerNiklas Haas <git@haasn.xyz>2017-09-22 16:58:55 +0200
commit62ddc85d178e647e8cfbee6da4d173c661b4f1fc (patch)
treeab58cbd56fe8a6251ada92f7b75e002e52e0d430 /video/out/gpu/context.h
parent2af2fa7a27586f6938f4db8f45e316212e18e442 (diff)
downloadmpv-62ddc85d178e647e8cfbee6da4d173c661b4f1fc.tar.bz2
mpv-62ddc85d178e647e8cfbee6da4d173c661b4f1fc.tar.xz
vo_gpu: simplify structs / names
Due to the plethora of historical baggage from different eras getting confusing, I decided to simplify and unify the struct organization and naming scheme. Structs that got renamed: 1. fbodst -> ra_fbo (and moved to gpu/context.h) 2. fbotex -> removed (redundant after 2af2fa7a) 3. fbosurface -> surface 4. img_tex -> image In addition to these structs being renamed, all of the names have been made consistent. The new scheme is as follows: struct image img; struct ra_tex *tex; struct ra_fbo fbo; This also affects derived names, e.g. indirect_fbo -> indirect_tex. Notably also, finish_pass_fbo -> finish_pass_tex and finish_pass_direct -> finish_pass_fbo. The new equivalent of fbotex_change() is called ra_tex_resize(). This commit (should) contain no logic changes, just renaming a bunch of crap.
Diffstat (limited to 'video/out/gpu/context.h')
-rw-r--r--video/out/gpu/context.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/video/out/gpu/context.h b/video/out/gpu/context.h
index 42de59b75f..f74087592d 100644
--- a/video/out/gpu/context.h
+++ b/video/out/gpu/context.h
@@ -56,21 +56,26 @@ struct ra_swapchain {
struct ra_ctx *ctx;
struct priv *priv;
const struct ra_swapchain_fns *fns;
+};
- bool flip_v; // flip the rendered image vertically (set by the swapchain)
+// Represents a framebuffer / render target
+struct ra_fbo {
+ struct ra_tex *tex;
+ bool flip; // rendering needs to be inverted
};
struct ra_swapchain_fns {
// Gets the current framebuffer depth in bits (0 if unknown). Optional.
int (*color_depth)(struct ra_swapchain *sw);
- // Retrieves a screenshot of the framebuffer. These are always the right
- // side up, regardless of ra_swapchain->flip_v. Optional.
+ // Retrieves a screenshot of the framebuffer. Optional.
struct mp_image *(*screenshot)(struct ra_swapchain *sw);
// Called when rendering starts. Returns NULL on failure. This must be
- // followed by submit_frame, to submit the rendered frame.
- struct ra_tex *(*start_frame)(struct ra_swapchain *sw);
+ // followed by submit_frame, to submit the rendered frame. This function
+ // can also fail sporadically, and such errors should be ignored unless
+ // they persist.
+ bool (*start_frame)(struct ra_swapchain *sw, struct ra_fbo *out_fbo);
// Present the frame. Issued in lockstep with start_frame, with rendering
// commands in between. The `frame` is just there for timing data, for