+ vptr = carr;
+ for(i=0; i<win_height; i++) {
+ for(j=0; j<win_width; j++) {
+ int r = start[j] & 0xff;
+ int g = (start[j] >> 8) & 0xff;
+ int b = (start[j] >> 16) & 0xff;
+ vptr[0] = r / 255.0f;
+ vptr[1] = g / 255.0f;
+ vptr[2] = b / 255.0f;
+ vptr += 3;
+ }
+ start += IMG_W;
+ }
+
+ if(have_vbo) {
+ glBindBuffer(GL_ARRAY_BUFFER, vbo_pos);
+ glVertexPointer(2, GL_FLOAT, 0, 0);
+ glBindBuffer(GL_ARRAY_BUFFER, vbo_col);
+ glBufferSubData(GL_ARRAY_BUFFER, 0, carr_sz, carr);
+ glColorPointer(3, GL_FLOAT, 0, 0);
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
+ } else {
+ glVertexPointer(2, GL_FLOAT, 0, varr);
+ glColorPointer(3, GL_FLOAT, 0, carr);
+ }
+
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glEnableClientState(GL_COLOR_ARRAY);
+
+ glDrawArrays(GL_POINTS, 0, win_width * win_height);
+
+ glDisableClientState(GL_VERTEX_ARRAY);
+ glDisableClientState(GL_COLOR_ARRAY);