Rev 4523 | Rev 4526 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4523 | Rev 4525 | ||
---|---|---|---|
Line 48... | Line 48... | ||
48 | draw = eglGetCurrentSurface(EGL_DRAW); |
48 | draw = eglGetCurrentSurface(EGL_DRAW); |
49 | read = eglGetCurrentSurface(EGL_READ); |
49 | read = eglGetCurrentSurface(EGL_READ); |
Line 50... | Line 50... | ||
50 | 50 | ||
Line -... | Line 51... | ||
- | 51 | eglSwapBuffers(render->dpy,draw); |
|
- | 52 | ||
- | 53 | render->back_buffer++; |
|
- | 54 | render->back_buffer&=1; |
|
- | 55 | ||
- | 56 | update.handle = render->mask_handle; |
|
- | 57 | update.dx = render->dx; |
|
- | 58 | update.dy = render->dy; |
|
- | 59 | update.width = render->width; |
|
- | 60 | update.height = render->height; |
|
- | 61 | update.bo_pitch = (render->width+15) & ~15; |
|
- | 62 | update.bo_map = (int)render->mask_buffer; |
|
- | 63 | ||
- | 64 | if(drm_ioctl(render->fd, 45, &update)) |
|
- | 65 | return; |
|
51 | eglSwapBuffers(render->dpy,draw); |
66 | |
52 | 67 | ||
53 | if (!eglMakeCurrent(render->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, render->context)) |
68 | if (!eglMakeCurrent(render->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, render->context)) |
54 | { |
69 | { |
55 | printf("failed to make window current"); |
70 | printf("failed to make window current"); |
Line 56... | Line -... | ||
56 | goto err1; |
- | |
57 | }; |
- | |
58 | - | ||
59 | #if 0 |
- | |
60 | glUseProgram(render->blit_prog); |
- | |
61 | glUniform1i(render->sampler, 0); |
- | |
62 | - | ||
63 | glVertexAttribPointer(0, 2, GL_FLOAT,GL_FALSE, 2 * sizeof(float),render->vertices); |
- | |
64 | glEnableVertexAttribArray(0); |
- | |
65 | - | ||
66 | glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(float),render->texcoords); |
- | |
67 | glEnableVertexAttribArray(1); |
- | |
68 | - | ||
69 | #endif |
- | |
70 | - | ||
Line 71... | Line 71... | ||
71 | update.handle = render->mask_handle; |
71 | goto err1; |
72 | update.bo_map = (int)render->mask_buffer; |
72 | }; |
73 | drm_ioctl(render->fd, SRV_MASK_UPDATE, &update); |
73 | |
74 | 74 | ||
Line 108... | Line 108... | ||
108 | texcoords[2*2] = 1.0; |
108 | texcoords[2*2] = 1.0; |
109 | texcoords[2*2+1]= 1.0; |
109 | texcoords[2*2+1]= 1.0; |
110 | texcoords[3*2] = 0.0; |
110 | texcoords[3*2] = 0.0; |
111 | texcoords[3*2+1]= 1.0; |
111 | texcoords[3*2+1]= 1.0; |
Line 112... | Line -... | ||
112 | - | ||
113 | texcoords = render->tc_mask; |
- | |
114 | - | ||
115 | xscale = 1.0/winw; |
- | |
116 | yscale = 1.0/winh; |
- | |
117 | - | ||
118 | texcoords[0] = render->dx * xscale; |
- | |
119 | texcoords[1] = render->dy * yscale; |
- | |
120 | texcoords[1*2] = (render->dx+render->width)*xscale; |
- | |
121 | texcoords[1*2+1]= render->dy * yscale; |
- | |
122 | texcoords[2*2] = (render->dx+render->width)*xscale; |
- | |
123 | texcoords[2*2+1]= (render->dy+render->height)*yscale; |
- | |
124 | texcoords[3*2] = render->dx * xscale; |
- | |
125 | texcoords[3*2+1]= (render->dy+render->height)*yscale; |
- | |
126 | - | ||
127 | 112 | ||
128 | glDrawArrays(GL_TRIANGLE_FAN, 0, 4); |
113 | glDrawArrays(GL_TRIANGLE_FAN, 0, 4); |
Line 129... | Line 114... | ||
129 | glFlush(); |
114 | glFlush(); |
130 | 115 | ||
131 | // glDisableVertexAttribArray(0); |
116 | // glDisableVertexAttribArray(0); |
132 | // glDisableVertexAttribArray(1); |
117 | // glDisableVertexAttribArray(1); |
Line 133... | Line -... | ||
133 | // glDisable(GL_TEXTURE_2D); |
- | |
134 | // glUseProgram(0); |
- | |
Line 135... | Line 118... | ||
135 | 118 | // glDisable(GL_TEXTURE_2D); |
|
136 | render->back_buffer++; |
119 | // glUseProgram(0); |
137 | render->back_buffer&=1; |
120 |