Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <screen/screen.h>
- #include <bps/navigator.h>
- #include <bps/screen.h>
- #include <bps/bps.h>
- #include <bps/event.h>
- #include <stdio.h>
- int main(int argc, char *argv[]) {
- fputs("Starting", stderr);
- screen_context_t screen_context = 0;
- screen_create_context(&screen_context,0);
- screen_window_t window = 0;
- screen_create_window(&window,screen_context);
- int usage = SCREEN_USAGE_NATIVE | SCREEN_USAGE_WRITE;
- screen_set_window_property_iv(window,SCREEN_PROPERTY_USAGE,&usage);
- screen_create_window_buffers(window, 2);
- screen_buffer_t windowBuffer[2];
- screen_get_window_property_pv(window, SCREEN_PROPERTY_RENDER_BUFFERS, (void**)windowBuffer);
- int dimensions[2] = {0,0};
- screen_get_window_property_iv(window, SCREEN_PROPERTY_BUFFER_SIZE, dimensions);
- screen_pixmap_t pixmap = 0;
- int format = SCREEN_FORMAT_RGBA8888;
- screen_create_pixmap(&pixmap, screen_context);
- screen_set_pixmap_property_iv(pixmap, SCREEN_PROPERTY_BUFFER_SIZE, dimensions);
- screen_set_pixmap_property_iv(pixmap, SCREEN_PROPERTY_FORMAT, &format);
- screen_create_pixmap_buffer(pixmap);
- screen_buffer_t pixmap_buffer = 0;
- screen_get_pixmap_property_pv(pixmap, SCREEN_PROPERTY_RENDER_BUFFERS, (void **)&pixmap_buffer);
- unsigned char *backbuffer = 0;
- screen_get_buffer_property_pv(pixmap_buffer, SCREEN_PROPERTY_POINTER, (void**)&backbuffer);
- int stride = 0;
- screen_get_buffer_property_iv(pixmap_buffer, SCREEN_PROPERTY_STRIDE, &stride);
- int pos = 1;
- int amount = 1;
- while (1==1) {
- pos+=amount;
- if (pos >= 255 || pos <= 0) {
- if (amount == 1) amount = -1;
- else amount=1;
- }
- int x,y;
- for (x = 0; x < dimensions[0]; x++) {
- for (y = 0; y< dimensions[1]; y++) {
- backbuffer[x*4 + y*stride] = pos; //red
- backbuffer[x*4+1 + y*stride] = pos; //green
- backbuffer[x*4+2 + y*stride] = pos; //blue
- backbuffer[x*4+3 + y*stride] = 0xff; //alpha
- }
- }
- int hg[] = {
- SCREEN_BLIT_END
- };
- int rect[4] = {0, 0, dimensions[0], dimensions[1]};
- screen_blit(screen_context, windowBuffer[0], pixmap_buffer, hg);
- screen_post_window(window, windowBuffer[0], 1, rect, 0);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement