mirror of
https://github.com/mpv-player/mpv
synced 2024-12-22 06:42:03 +00:00
1153f13bee
This now stores caches for multiple ICC profiles, potentially all the user has ever used. The big use case for this is for users with multiple monitors. The old logic would mandate recomputing the LUT and discarding the cache whenever dragging mpv from one screen to another. This also avoids having to save and check the ICC profile itself, since the file name already uniquely determines it.
31 lines
719 B
C
31 lines
719 B
C
#ifndef MP_GL_LCMS_H
|
|
#define MP_GL_LCMS_H
|
|
|
|
#include <stddef.h>
|
|
#include <stdbool.h>
|
|
#include "misc/bstr.h"
|
|
|
|
extern const struct m_sub_options mp_icc_conf;
|
|
|
|
struct mp_icc_opts {
|
|
char *profile;
|
|
int profile_auto;
|
|
char *cache_dir;
|
|
char *size_str;
|
|
int intent;
|
|
};
|
|
|
|
struct lut3d;
|
|
struct mp_log;
|
|
struct mpv_global;
|
|
struct gl_lcms;
|
|
|
|
struct gl_lcms *gl_lcms_init(void *talloc_ctx, struct mp_log *log,
|
|
struct mpv_global *global);
|
|
void gl_lcms_set_options(struct gl_lcms *p, struct mp_icc_opts *opts);
|
|
void gl_lcms_set_memory_profile(struct gl_lcms *p, bstr *profile);
|
|
bool gl_lcms_get_lut3d(struct gl_lcms *p, struct lut3d **);
|
|
bool gl_lcms_has_changed(struct gl_lcms *p);
|
|
|
|
#endif
|