mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-11-25 23:07:18 +00:00
[client] egl/cas: release consts
when no longer needed
This commit is contained in:
parent
8b2db071d8
commit
5a2f34d71c
@ -74,8 +74,9 @@ static void egl_filterFFXCASEarlyInit(void)
|
|||||||
|
|
||||||
static void casUpdateConsts(EGL_FilterFFXCAS * this)
|
static void casUpdateConsts(EGL_FilterFFXCAS * this)
|
||||||
{
|
{
|
||||||
ffxCasConst((uint32_t *) this->consts->data, this->sharpness, this->width, this->height,
|
ffxCasConst((uint32_t *) this->consts->data, this->sharpness,
|
||||||
this->width, this->height);
|
this->width, this->height,
|
||||||
|
this->width, this->height);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool egl_filterFFXCASInit(EGL_Filter ** filter)
|
static bool egl_filterFFXCASInit(EGL_Filter ** filter)
|
||||||
@ -103,6 +104,12 @@ static bool egl_filterFFXCASInit(EGL_Filter ** filter)
|
|||||||
}
|
}
|
||||||
|
|
||||||
this->consts = countedBufferNew(8 * sizeof(GLuint));
|
this->consts = countedBufferNew(8 * sizeof(GLuint));
|
||||||
|
if (!this->consts)
|
||||||
|
{
|
||||||
|
DEBUG_ERROR("Failed to allocate consts buffer");
|
||||||
|
goto error_shader;
|
||||||
|
}
|
||||||
|
|
||||||
egl_shaderSetUniforms(this->shader, &(EGL_Uniform) {
|
egl_shaderSetUniforms(this->shader, &(EGL_Uniform) {
|
||||||
.type = EGL_UNIFORM_TYPE_4UIV,
|
.type = EGL_UNIFORM_TYPE_4UIV,
|
||||||
.location = egl_shaderGetUniform(this->shader, "uConsts"),
|
.location = egl_shaderGetUniform(this->shader, "uConsts"),
|
||||||
@ -115,7 +122,7 @@ static bool egl_filterFFXCASInit(EGL_Filter ** filter)
|
|||||||
if (!egl_framebufferInit(&this->fb))
|
if (!egl_framebufferInit(&this->fb))
|
||||||
{
|
{
|
||||||
DEBUG_ERROR("Failed to initialize the framebuffer");
|
DEBUG_ERROR("Failed to initialize the framebuffer");
|
||||||
goto error_shader;
|
goto error_consts;
|
||||||
}
|
}
|
||||||
|
|
||||||
glGenSamplers(1, &this->sampler);
|
glGenSamplers(1, &this->sampler);
|
||||||
@ -127,6 +134,9 @@ static bool egl_filterFFXCASInit(EGL_Filter ** filter)
|
|||||||
*filter = &this->base;
|
*filter = &this->base;
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
error_consts:
|
||||||
|
countedBufferRelease(&this->consts);
|
||||||
|
|
||||||
error_shader:
|
error_shader:
|
||||||
egl_shaderFree(&this->shader);
|
egl_shaderFree(&this->shader);
|
||||||
|
|
||||||
@ -140,6 +150,7 @@ static void egl_filterFFXCASFree(EGL_Filter * filter)
|
|||||||
EGL_FilterFFXCAS * this = UPCAST(EGL_FilterFFXCAS, filter);
|
EGL_FilterFFXCAS * this = UPCAST(EGL_FilterFFXCAS, filter);
|
||||||
|
|
||||||
egl_shaderFree(&this->shader);
|
egl_shaderFree(&this->shader);
|
||||||
|
countedBufferRelease(&this->consts);
|
||||||
egl_framebufferFree(&this->fb);
|
egl_framebufferFree(&this->fb);
|
||||||
glDeleteSamplers(1, &this->sampler);
|
glDeleteSamplers(1, &this->sampler);
|
||||||
free(this);
|
free(this);
|
||||||
|
Loading…
Reference in New Issue
Block a user