35,18 → 35,20 |
|
}; |
|
void rskos_draw_area(int x, int y, int w, int h, int k_scale, unsigned char *data, unsigned char *scaled_buffer) { |
void rskos_draw_area(int x, int y, int w, int h, int k_scale, unsigned char *data, unsigned char *scaled_buffer, int image_format) { |
|
int bpp = image_format == RSKOS_BGR ? 3 : 4; |
|
int i, j; |
// int i, j; |
// |
// for (i = 0; i < h*k_scale; i++) { |
// for (j = 0; j < w*k_scale; j++) { |
// scaled_buffer[ (i*w*k_scale + j)*3 + 0] = data[ ( (i/k_scale)*w + (j/k_scale) )*4 + 0]; |
// scaled_buffer[ (i*w*k_scale + j)*3 + 1] = data[ ( (i/k_scale)*w + (j/k_scale) )*4 + 1]; |
// scaled_buffer[ (i*w*k_scale + j)*3 + 2] = data[ ( (i/k_scale)*w + (j/k_scale) )*4 + 2]; |
// }; |
// }; |
|
for (i = 0; i < h*k_scale; i++) { |
for (j = 0; j < w*k_scale; j++) { |
scaled_buffer[ (i*w*k_scale + j)*3 + 0] = data[ ( (i/k_scale)*w + (j/k_scale) )*4 + 0]; |
scaled_buffer[ (i*w*k_scale + j)*3 + 1] = data[ ( (i/k_scale)*w + (j/k_scale) )*4 + 1]; |
scaled_buffer[ (i*w*k_scale + j)*3 + 2] = data[ ( (i/k_scale)*w + (j/k_scale) )*4 + 2]; |
}; |
}; |
|
|
|
53,7 → 55,6 |
|
|
|
|
glViewport(0, 0, rs_app.width, rs_app.height); |
glClearColor( 0.2596078431, 0.2815686275, 0.3929411765, 1.0 ); // #98d0ed |
//glClearColor( 0.0, 0.4, 0.1 + 0.5*0.001*(rs_get_time()%1024) , 1.0 ); |
65,7 → 66,8 |
|
|
|
rs_tx_t tex = rs_tx_create_from_data(w*k_scale, h*k_scale, 3, 0, 1, scaled_buffer); |
//rs_tx_t tex = rs_tx_create_from_data(w*k_scale, h*k_scale, 3, 0, 1, scaled_buffer); |
rs_tx_t tex = rs_tx_create_from_data(w, h, bpp, 0, 1, data); |
|
glBindTexture(GL_TEXTURE_2D, tex); |
|
86,10 → 88,6 |
|
rsDoSwapBuffers(); |
|
// swap buffers (??) |
|
|
|
}; |
|
|
150,9 → 148,13 |
return 1; |
}; |
|
void rskos_draw_area(int x, int y, int w, int h, int k_scale, unsigned char *data, unsigned char *scaled_buffer) { |
void rskos_draw_area(int x, int y, int w, int h, int k_scale, unsigned char *data, unsigned char *scaled_buffer, int image_format) { |
|
// unsigned char *scaled_buffer = malloc(w*k_scale*h*k_scale*3); |
|
|
// if (scaled_buffer != NULL) { |
|
int i, j; |
|
for (i = 0; i < h*k_scale; i++) { |
164,11 → 166,18 |
}; |
|
kol_paint_image(0, 0, w*k_scale, h*k_scale, scaled_buffer); |
// } |
// else { |
// //kol_paint_image_pal(0, 0, w, h, data, &image_format) |
// h/=4; |
// asm volatile ("int $0x40"::"a"(65), "b"(data), "c"(w*65536+h), "d"(0*65536+0), "D"(0), "S"(24) ); |
//// asm volatile ("int $0x40"::"a"(7), "c"(w*65536+h), "d"(x*65536+y), "b"(data)); |
// }; |
// |
//// free(image_data); |
|
// free(image_data); |
|
|
|
}; |
|
void rskos_resize_window(int w, int h) { |