From a228effbeb339ae6f0b73c633022b3ec9981148f Mon Sep 17 00:00:00 2001 From: Zhigang Gong Date: Thu, 11 Aug 2011 15:56:02 -0400 Subject: [PATCH] glamor: Remove useless glVertexPointer related code. As glVertexPointer is not supported by GLES2, I totally replaced it by VertexAttribArray. This commit remove those old code. Signed-off-by: Zhigang Gong --- glamor/glamor_copyarea.c | 22 +---------- glamor/glamor_core.c | 83 ++++++---------------------------------- glamor/glamor_fill.c | 31 --------------- glamor/glamor_pixmap.c | 20 +--------- glamor/glamor_priv.h | 2 +- glamor/glamor_putimage.c | 11 +----- glamor/glamor_render.c | 30 --------------- glamor/glamor_tile.c | 35 ----------------- 8 files changed, 15 insertions(+), 219 deletions(-) diff --git a/glamor/glamor_copyarea.c b/glamor/glamor_copyarea.c index dca7160f9..1e160acb6 100644 --- a/glamor/glamor_copyarea.c +++ b/glamor/glamor_copyarea.c @@ -180,15 +180,10 @@ glamor_copy_n_to_n_textured(DrawablePtr src, -#if 0 - glVertexPointer(2, GL_FLOAT, sizeof(float) * 2, vertices); - glEnableClientState(GL_VERTEX_ARRAY); -#else glVertexAttribPointer(GLAMOR_VERTEX_POS, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(float), vertices); glEnableVertexAttribArray(GLAMOR_VERTEX_POS); -#endif if (GLAMOR_PIXMAP_PRIV_NO_PENDING(src_pixmap_priv)) { glamor_get_drawable_deltas(src, src_pixmap, &src_x_off, &src_y_off); @@ -201,19 +196,12 @@ glamor_copy_n_to_n_textured(DrawablePtr src, glEnable(GL_TEXTURE_2D); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); -#if 0 - glClientActiveTexture(GL_TEXTURE0); - glTexCoordPointer(2, GL_FLOAT, sizeof(float) * 2, texcoords); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glUseProgram(glamor_priv->finish_access_prog[0]); -#else glVertexAttribPointer(GLAMOR_VERTEX_SOURCE, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(float), texcoords); glEnableVertexAttribArray(GLAMOR_VERTEX_SOURCE); - glUseProgram(glamor_priv->finish_access_prog[2]); -#endif + glUseProgram(glamor_priv->finish_access_prog[0]); } else { @@ -240,19 +228,11 @@ glamor_copy_n_to_n_textured(DrawablePtr src, glDrawArrays(GL_TRIANGLE_FAN, 0, 4); } -#if 0 - glDisableClientState(GL_VERTEX_ARRAY); - if (GLAMOR_PIXMAP_PRIV_NO_PENDING(src_pixmap_priv)) { - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glDisable(GL_TEXTURE_2D); - } -#else glDisableVertexAttribArray(GLAMOR_VERTEX_POS); if (GLAMOR_PIXMAP_PRIV_NO_PENDING(src_pixmap_priv)) { glDisableVertexAttribArray(GLAMOR_VERTEX_SOURCE); glDisable(GL_TEXTURE_2D); } -#endif glUseProgram(0); /* The source texture is bound to a fbo, we have to flush it here. */ if (flush_needed) diff --git a/glamor/glamor_core.c b/glamor/glamor_core.c index 09851a0dd..9f0457380 100644 --- a/glamor/glamor_core.c +++ b/glamor/glamor_core.c @@ -141,30 +141,7 @@ void glamor_init_finish_access_shaders(ScreenPtr screen) { glamor_screen_private *glamor_priv = glamor_get_screen_private(screen); -#ifndef GLAMOR_GLES2 const char *vs_source = - "void main()\n" - "{\n" - " gl_Position = gl_Vertex;\n" - " gl_TexCoord[0] = gl_MultiTexCoord0;\n" - "}\n"; - const char *fs_source = - "varying vec2 texcoords;\n" - "uniform sampler2D sampler;\n" - "void main()\n" - "{\n" - " gl_FragColor = texture2D(sampler, gl_TexCoord[0].xy);\n" - "}\n"; - - const char *aswizzle_source = - "varying vec2 texcoords;\n" - "uniform sampler2D sampler;\n" - "void main()\n" - "{\n" - " gl_FragColor = vec4(texture2D(sampler, gl_TexCoord[0].xy).rgb, 1);\n" - "}\n"; -#endif - const char *es_vs_source = "attribute vec4 v_position;\n" "attribute vec4 v_texcoord0;\n" "varying vec2 source_texture;\n" @@ -174,7 +151,7 @@ glamor_init_finish_access_shaders(ScreenPtr screen) " source_texture = v_texcoord0.xy;\n" "}\n"; - const char *es_fs_source = + const char *fs_source = "varying vec2 source_texture;\n" "uniform sampler2D sampler;\n" "void main()\n" @@ -182,62 +159,37 @@ glamor_init_finish_access_shaders(ScreenPtr screen) " gl_FragColor = texture2D(sampler, source_texture);\n" "}\n"; - const char *es_aswizzle_source = + const char *set_alpha_source = "varying vec2 source_texture;\n" - "varying vec2 texcoords;\n" "uniform sampler2D sampler;\n" "void main()\n" "{\n" " gl_FragColor = vec4(texture2D(sampler, source_texture).rgb, 1);\n" "}\n"; - - - - GLint fs_prog, vs_prog, avs_prog, aswizzle_prog; - GLint es_fs_prog, es_vs_prog, es_avs_prog, es_aswizzle_prog; + GLint fs_prog, vs_prog, avs_prog, set_alpha_prog; + GLint sampler_uniform_location; glamor_priv->finish_access_prog[0] = glCreateProgram(); glamor_priv->finish_access_prog[1] = glCreateProgram(); - glamor_priv->finish_access_prog[2] = glCreateProgram(); - glamor_priv->finish_access_prog[3] = glCreateProgram(); -#ifndef GLAMOR_GLES2 vs_prog = glamor_compile_glsl_prog(GL_VERTEX_SHADER, vs_source); fs_prog = glamor_compile_glsl_prog(GL_FRAGMENT_SHADER, fs_source); glAttachShader(glamor_priv->finish_access_prog[0], vs_prog); glAttachShader(glamor_priv->finish_access_prog[0], fs_prog); avs_prog = glamor_compile_glsl_prog(GL_VERTEX_SHADER, vs_source); - aswizzle_prog = glamor_compile_glsl_prog(GL_FRAGMENT_SHADER, aswizzle_source); + set_alpha_prog = glamor_compile_glsl_prog(GL_FRAGMENT_SHADER, set_alpha_source); glAttachShader(glamor_priv->finish_access_prog[1], avs_prog); - glAttachShader(glamor_priv->finish_access_prog[1], aswizzle_prog); -#endif - es_vs_prog = glamor_compile_glsl_prog(GL_VERTEX_SHADER, es_vs_source); - es_fs_prog = glamor_compile_glsl_prog(GL_FRAGMENT_SHADER, es_fs_source); - glAttachShader(glamor_priv->finish_access_prog[2], es_vs_prog); - glAttachShader(glamor_priv->finish_access_prog[2], es_fs_prog); + glAttachShader(glamor_priv->finish_access_prog[1], set_alpha_prog); - es_avs_prog = glamor_compile_glsl_prog(GL_VERTEX_SHADER, es_vs_source); - es_aswizzle_prog = glamor_compile_glsl_prog(GL_FRAGMENT_SHADER, es_aswizzle_source); - glAttachShader(glamor_priv->finish_access_prog[3], es_avs_prog); - glAttachShader(glamor_priv->finish_access_prog[3], es_aswizzle_prog); - - - -#ifndef GLAMOR_GLES2 + glBindAttribLocation(glamor_priv->finish_access_prog[0], GLAMOR_VERTEX_POS, "v_position"); + glBindAttribLocation(glamor_priv->finish_access_prog[0], GLAMOR_VERTEX_SOURCE, "v_texcoord0"); glamor_link_glsl_prog(glamor_priv->finish_access_prog[0]); + + glBindAttribLocation(glamor_priv->finish_access_prog[1], GLAMOR_VERTEX_POS, "v_position"); + glBindAttribLocation(glamor_priv->finish_access_prog[1], GLAMOR_VERTEX_SOURCE, "v_texcoord0"); glamor_link_glsl_prog(glamor_priv->finish_access_prog[1]); -#endif - glBindAttribLocation(glamor_priv->finish_access_prog[2], GLAMOR_VERTEX_POS, "v_position"); - glBindAttribLocation(glamor_priv->finish_access_prog[2], GLAMOR_VERTEX_SOURCE, "v_texcoord0"); - glamor_link_glsl_prog(glamor_priv->finish_access_prog[2]); - glBindAttribLocation(glamor_priv->finish_access_prog[3], GLAMOR_VERTEX_POS, "v_position"); - glBindAttribLocation(glamor_priv->finish_access_prog[3], GLAMOR_VERTEX_SOURCE, "v_texcoord0"); - glamor_link_glsl_prog(glamor_priv->finish_access_prog[3]); - - GLint sampler_uniform_location; -#ifndef GLAMOR_GLES2 sampler_uniform_location = glGetUniformLocation(glamor_priv->finish_access_prog[0], "sampler"); glUseProgram(glamor_priv->finish_access_prog[0]); @@ -249,19 +201,6 @@ glamor_init_finish_access_shaders(ScreenPtr screen) glUseProgram(glamor_priv->finish_access_prog[1]); glUniform1i(sampler_uniform_location, 0); glUseProgram(0); -#endif - sampler_uniform_location = - glGetUniformLocation(glamor_priv->finish_access_prog[2], "sampler"); - glUseProgram(glamor_priv->finish_access_prog[2]); - glUniform1i(sampler_uniform_location, 0); - glUseProgram(0); - - sampler_uniform_location = - glGetUniformLocation(glamor_priv->finish_access_prog[3], "sampler"); - glUseProgram(glamor_priv->finish_access_prog[3]); - glUniform1i(sampler_uniform_location, 0); - glUseProgram(0); - } void diff --git a/glamor/glamor_fill.c b/glamor/glamor_fill.c index 556ff342c..660ffe014 100644 --- a/glamor/glamor_fill.c +++ b/glamor/glamor_fill.c @@ -102,33 +102,11 @@ void glamor_init_solid_shader(ScreenPtr screen) { glamor_screen_private *glamor_priv = glamor_get_screen_private(screen); - const char *solid_vs_only = -#if 0 -#else - "attribute vec4 v_position;" -#endif - "uniform vec4 color;\n" - "void main()\n" - "{\n" -#if 0 - " gl_Position = gl_Vertex;\n" -#else - " gl_Position = v_position;\n" -#endif - " gl_Color = color;\n" - "}\n"; const char *solid_vs = -#if 0 -#else "attribute vec4 v_position;" -#endif "void main()\n" "{\n" -#if 0 - " gl_Position = gl_Vertex;\n" -#else " gl_Position = v_position;\n" -#endif "}\n"; const char *solid_fs = "uniform vec4 color;\n" @@ -201,25 +179,16 @@ glamor_solid(PixmapPtr pixmap, int x, int y, int width, int height, glUniform4fv(glamor_priv->solid_color_uniform_location, 1, color); -#if 0 - glVertexPointer(2, GL_FLOAT, sizeof(float) * 2, vertices); - glEnableClientState(GL_VERTEX_ARRAY); -#else glVertexAttribPointer(GLAMOR_VERTEX_POS, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(float), vertices); glEnableVertexAttribArray(GLAMOR_VERTEX_POS); -#endif pixmap_priv_get_scale(pixmap_priv, &xscale, &yscale); glamor_set_normalize_vcoords(xscale, yscale, x1, y1, x2, y2, glamor_priv->yInverted, vertices); glDrawArrays(GL_TRIANGLE_FAN, 0, 4); -#if 0 - glDisableClientState(GL_VERTEX_ARRAY); -#else glDisableVertexAttribArray(GLAMOR_VERTEX_POS); -#endif glUseProgram(0); return TRUE; fail: diff --git a/glamor/glamor_pixmap.c b/glamor/glamor_pixmap.c index 8ca1318ab..1dc1ee93c 100644 --- a/glamor/glamor_pixmap.c +++ b/glamor/glamor_pixmap.c @@ -32,14 +32,9 @@ _glamor_pixmap_validate_filling(glamor_screen_private *glamor_priv, glamor_pixmap_private *pixmap_priv) { GLfloat vertices[8]; -#if 0 - glVertexPointer(2, GL_FLOAT, sizeof(float) * 2, vertices); - glEnableClientState(GL_VERTEX_ARRAY); -#else glVertexAttribPointer(GLAMOR_VERTEX_POS, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(float), vertices); glEnableVertexAttribArray(GLAMOR_VERTEX_POS); -#endif glUseProgram(glamor_priv->solid_prog); glUniform4fv(glamor_priv->solid_color_uniform_location, 1, pixmap_priv->pending_op.fill.color4fv); @@ -52,11 +47,7 @@ _glamor_pixmap_validate_filling(glamor_screen_private *glamor_priv, vertices[6] = -1; vertices[7] = 1; glDrawArrays(GL_TRIANGLE_FAN, 0, 4); -#if 0 - glDisableClientState(GL_VERTEX_ARRAY); -#else glDisableVertexAttribArray(GLAMOR_VERTEX_POS); -#endif glUseProgram(0); pixmap_priv->pending_op.type = GLAMOR_PENDING_NONE; } @@ -341,23 +332,14 @@ _glamor_upload_pixmap_to_texture(PixmapPtr pixmap, GLenum format, glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glEnable(GL_TEXTURE_2D); -#if 0 glUseProgram(glamor_priv->finish_access_prog[no_alpha]); -#else - glUseProgram(glamor_priv->finish_access_prog[no_alpha + 2]); -#endif glDrawArrays(GL_TRIANGLE_FAN, 0, 4); glDisable(GL_TEXTURE_2D); glUseProgram(0); -#if 0 - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); -#else glDisableVertexAttribArray(GLAMOR_VERTEX_POS); glDisableVertexAttribArray(GLAMOR_VERTEX_SOURCE); -#endif glDeleteTextures(1, &tex); glBindFramebuffer(GL_FRAMEBUFFER, 0); } @@ -516,7 +498,7 @@ glamor_download_pixmap_to_cpu(PixmapPtr pixmap, glamor_access_t access) unsigned int stride, row_length, y; GLenum format, type, gl_access, gl_usage; int no_alpha; - uint8_t *data, *read; + uint8_t *data = NULL, *read; glamor_screen_private *glamor_priv = glamor_get_screen_private(pixmap->drawable.pScreen); diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h index 2c2bf22d2..400988574 100644 --- a/glamor/glamor_priv.h +++ b/glamor/glamor_priv.h @@ -235,7 +235,7 @@ typedef struct glamor_screen_private { int max_fbo_size; /* glamor_finishaccess */ - GLint finish_access_prog[4]; + GLint finish_access_prog[2]; /* glamor_solid */ GLint solid_prog; diff --git a/glamor/glamor_putimage.c b/glamor/glamor_putimage.c index 38da796af..addfdf2bd 100644 --- a/glamor/glamor_putimage.c +++ b/glamor/glamor_putimage.c @@ -35,8 +35,8 @@ void glamor_init_putimage_shaders(ScreenPtr screen) { - glamor_screen_private *glamor_priv = glamor_get_screen_private(screen); #if 0 + glamor_screen_private *glamor_priv = glamor_get_screen_private(screen); const char *xybitmap_vs = "uniform float x_bias;\n" "uniform float x_scale;\n" @@ -346,11 +346,7 @@ glamor_put_image(DrawablePtr drawable, GCPtr gc, int depth, int x, int y, glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glEnable(GL_TEXTURE_2D); -#if 0 glUseProgram(glamor_priv->finish_access_prog[no_alpha]); -#else - glUseProgram(glamor_priv->finish_access_prog[no_alpha + 2]); -#endif x += drawable->x; y += drawable->y; @@ -400,13 +396,8 @@ glamor_put_image(DrawablePtr drawable, GCPtr gc, int depth, int x, int y, glDisable(GL_TEXTURE_2D); glUseProgram(0); -#if 0 - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); -#else glDisableVertexAttribArray(GLAMOR_VERTEX_POS); glDisableVertexAttribArray(GLAMOR_VERTEX_SOURCE); -#endif glDeleteTextures(1, &tex); if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c index 12b09243d..6099af744 100644 --- a/glamor/glamor_render.c +++ b/glamor/glamor_render.c @@ -523,47 +523,25 @@ glamor_setup_composite_vbo(ScreenPtr screen) glBindBuffer(GL_ARRAY_BUFFER, glamor_priv->vbo); -#if 0 - glVertexPointer(2, GL_FLOAT, glamor_priv->vb_stride, - (void *)((long)glamor_priv->vbo_offset)); - glEnableClientState(GL_VERTEX_ARRAY); -#else glVertexAttribPointer(GLAMOR_VERTEX_POS, 2, GL_FLOAT, GL_FALSE, glamor_priv->vb_stride, (void *)((long)glamor_priv->vbo_offset)); glEnableVertexAttribArray(GLAMOR_VERTEX_POS); -#endif if (glamor_priv->has_source_coords) { -#if 0 - glClientActiveTexture(GL_TEXTURE0); - glTexCoordPointer(2, GL_FLOAT, glamor_priv->vb_stride, - (void *)(glamor_priv->vbo_offset + 2 * sizeof(float))); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); -#else glVertexAttribPointer(GLAMOR_VERTEX_SOURCE, 2, GL_FLOAT, GL_FALSE, glamor_priv->vb_stride, (void *)((long)glamor_priv->vbo_offset + 2 * sizeof(float))); glEnableVertexAttribArray(GLAMOR_VERTEX_SOURCE); -#endif } if (glamor_priv->has_mask_coords) { -#if 0 - glClientActiveTexture(GL_TEXTURE1); - glTexCoordPointer(2, GL_FLOAT, glamor_priv->vb_stride, - (void *)(glamor_priv->vbo_offset + - (glamor_priv->has_source_coords ? 4 : 2) * - sizeof(float))); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); -#else glVertexAttribPointer(GLAMOR_VERTEX_MASK, 2, GL_FLOAT, GL_FALSE, glamor_priv->vb_stride, (void *)((long)glamor_priv->vbo_offset + (glamor_priv->has_source_coords ? 4 : 2) * sizeof(float))); glEnableVertexAttribArray(GLAMOR_VERTEX_MASK); -#endif } } @@ -1054,17 +1032,9 @@ glamor_composite_with_shader(CARD8 op, glamor_flush_composite_rects(screen); glBindBuffer(GL_ARRAY_BUFFER, 0); -#if 0 - glClientActiveTexture(GL_TEXTURE0); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glClientActiveTexture(GL_TEXTURE1); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glDisableClientState(GL_VERTEX_ARRAY); -#else glDisableVertexAttribArray(GLAMOR_VERTEX_POS); glDisableVertexAttribArray(GLAMOR_VERTEX_SOURCE); glDisableVertexAttribArray(GLAMOR_VERTEX_MASK); -#endif REGION_UNINIT(dst->pDrawable->pScreen, ®ion); glDisable(GL_BLEND); glActiveTexture(GL_TEXTURE0); diff --git a/glamor/glamor_tile.c b/glamor/glamor_tile.c index cb235527d..5104f0b47 100644 --- a/glamor/glamor_tile.c +++ b/glamor/glamor_tile.c @@ -41,35 +41,20 @@ glamor_init_tile_shader(ScreenPtr screen) { glamor_screen_private *glamor_priv = glamor_get_screen_private(screen); const char *tile_vs = -#if 0 -#else "attribute vec4 v_position;\n" "attribute vec4 v_texcoord0;\n" "varying vec2 tile_texture;\n" -#endif "void main()\n" "{\n" -#if 0 - " gl_Position = gl_Vertex;\n" - " gl_TexCoord[0] = gl_MultiTexCoord0;\n" -#else " gl_Position = v_position;\n" " tile_texture = v_texcoord0.xy;\n" -#endif "}\n"; const char *tile_fs = -#if 0 -#else "varying vec2 tile_texture;\n" -#endif "uniform sampler2D sampler;\n" "void main()\n" "{\n" -#if 0 - " gl_FragColor = texture2D(sampler, gl_TexCoord[0].xy);\n" -#else " gl_FragColor = texture2D(sampler, tile_texture);\n" -#endif "}\n"; GLint fs_prog, vs_prog; GLint sampler_uniform_location; @@ -163,16 +148,10 @@ glamor_tile(PixmapPtr pixmap, PixmapPtr tile, tile_x2, tile_y2, glamor_priv->yInverted, source_texcoords); -#if 0 - glClientActiveTexture(GL_TEXTURE0); - glTexCoordPointer(2, GL_FLOAT, sizeof(float) * 2, source_texcoords); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); -#else glVertexAttribPointer(GLAMOR_VERTEX_SOURCE, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(float), source_texcoords); glEnableVertexAttribArray(GLAMOR_VERTEX_SOURCE); -#endif } else { GLAMOR_CHECK_PENDING_FILL(glamor_priv, src_pixmap_priv); @@ -183,31 +162,17 @@ glamor_tile(PixmapPtr pixmap, PixmapPtr tile, glamor_priv->yInverted, vertices); -#if 0 - glVertexPointer(2, GL_FLOAT, sizeof(float) * 2, vertices); - glEnableClientState(GL_VERTEX_ARRAY); -#else glVertexAttribPointer(GLAMOR_VERTEX_POS, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(float), vertices); glEnableVertexAttribArray(GLAMOR_VERTEX_POS); -#endif glDrawArrays(GL_TRIANGLE_FAN, 0, 4); -#if 0 - if (GLAMOR_PIXMAP_PRIV_NO_PENDING(src_pixmap_priv)) { - glClientActiveTexture(GL_TEXTURE0); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glDisable(GL_TEXTURE_2D); - } - glDisableClientState(GL_VERTEX_ARRAY); -#else if (GLAMOR_PIXMAP_PRIV_NO_PENDING(src_pixmap_priv)) { glDisableVertexAttribArray(GLAMOR_VERTEX_SOURCE); glDisable(GL_TEXTURE_2D); } glDisableVertexAttribArray(GLAMOR_VERTEX_POS); -#endif glUseProgram(0); glamor_set_alu(GXcopy); glamor_set_planemask(pixmap, ~0);