diff options
author | Niklas Haas <git@haasn.xyz> | 2017-09-20 10:45:33 +0200 |
---|---|---|
committer | Niklas Haas <git@haasn.xyz> | 2017-09-22 16:58:55 +0200 |
commit | 62ddc85d178e647e8cfbee6da4d173c661b4f1fc (patch) | |
tree | ab58cbd56fe8a6251ada92f7b75e002e52e0d430 /video/out/gpu/context.h | |
parent | 2af2fa7a27586f6938f4db8f45e316212e18e442 (diff) | |
download | mpv-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.h | 15 |
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 |