Mesa: Makefiles

git-svn-id: svn://kolibrios.org@4768 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Sergey Semyonov (Serge)
2014-04-04 21:41:12 +00:00
parent a116ccf850
commit 88ffef6c2e
13 changed files with 717 additions and 167 deletions

View File

@@ -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);