forked from KolibriOS/kolibrios
Mesa: Makefiles
git-svn-id: svn://kolibrios.org@4768 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -76,7 +76,7 @@ static GLint create_shader(GLenum type, const char *source)
|
||||
printf("Program source:\n%s", source);
|
||||
printf("GLSL compile failure\n");
|
||||
free(info);
|
||||
glDeleteProgram(shader);
|
||||
glDeleteShader(shader);
|
||||
shader = 0;
|
||||
}
|
||||
err:
|
||||
@@ -325,6 +325,7 @@ struct render* create_render(EGLDisplay dpy, EGLSurface surface, int dx, int dy)
|
||||
printf("Failed to link: %s\n", info);
|
||||
printf("GLSL link failure\n");
|
||||
free(info);
|
||||
goto err12;
|
||||
}
|
||||
|
||||
render->sampler = glGetUniformLocation(render->blit_prog,"sampler_src");
|
||||
@@ -365,6 +366,8 @@ struct render* create_render(EGLDisplay dpy, EGLSurface surface, int dx, int dy)
|
||||
|
||||
return render;
|
||||
|
||||
err12:
|
||||
glDeleteShader(fs_shader);
|
||||
err11:
|
||||
glDeleteShader(vs_shader);
|
||||
err10:
|
||||
@@ -392,11 +395,10 @@ err:
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
void create_mask(struct render *render)
|
||||
{
|
||||
struct drm_i915_gem_create create;
|
||||
struct drm_gem_close close;
|
||||
struct drm_gem_flink flink;
|
||||
|
||||
struct drm_i915_gem_mmap mmap_arg;
|
||||
@@ -407,7 +409,6 @@ void create_mask(struct render *render)
|
||||
GLuint mask_handle, mask_name;
|
||||
EGLImageKHR mask_image;
|
||||
|
||||
|
||||
glGenTextures(1, &render->tx_mask);
|
||||
if(glGetError() != GL_NO_ERROR)
|
||||
return;
|
||||
@@ -416,7 +417,6 @@ void create_mask(struct render *render)
|
||||
if(glGetError() != GL_NO_ERROR)
|
||||
goto err1;
|
||||
|
||||
|
||||
pitch = (render->width+15) & ~15;
|
||||
|
||||
create.size = pitch *render->height;
|
||||
@@ -425,12 +425,12 @@ void create_mask(struct render *render)
|
||||
if(ret != 0)
|
||||
goto err1;
|
||||
|
||||
mask_handle = create.handle;
|
||||
flink.handle = create.handle;
|
||||
ret = drm_ioctl(render->fd, DRM_IOCTL_GEM_FLINK, &flink);
|
||||
if (ret != 0)
|
||||
goto err2;
|
||||
|
||||
mask_handle = create.handle;
|
||||
mask_name = flink.name;
|
||||
|
||||
printf("create mask bo handle %d name %d\n", create.handle, flink.name);
|
||||
@@ -451,9 +451,9 @@ void create_mask(struct render *render)
|
||||
|
||||
mask_image = eglCreateImageKHR(render->dpy, render->context, EGL_DRM_BUFFER_MESA,
|
||||
(void *) (uintptr_t)mask_name, attribs);
|
||||
|
||||
printf("create mask image %p\n", mask_image);
|
||||
|
||||
if(mask_image == NULL)
|
||||
goto err2
|
||||
|
||||
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
|
||||
@@ -461,7 +461,7 @@ void create_mask(struct render *render)
|
||||
glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, mask_image);
|
||||
|
||||
if(glGetError() != GL_NO_ERROR)
|
||||
goto err2;
|
||||
goto err3;
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, 0);
|
||||
|
||||
@@ -483,8 +483,10 @@ void create_mask(struct render *render)
|
||||
return;
|
||||
|
||||
err3:
|
||||
// eglDestroyImageKHR(render->dpy, render->mask);
|
||||
eglDestroyImageKHR(render->dpy, mask_image);
|
||||
err2:
|
||||
close.handle = mask_handle;
|
||||
(void)drm_ioctl(fd, DRM_IOCTL_GEM_CLOSE, &close);
|
||||
glBindTexture(GL_TEXTURE_2D, 0);
|
||||
err1:
|
||||
glDeleteTextures(1, &render->tx_mask);
|
||||
|
Reference in New Issue
Block a user