Skip to main content TerryFunggg Blog

Draw Rectangles

Define Color buffer:

c code snippet start


uint32_t *color_buffer = (uint32_t*) malloc(sizeof(uint32_t) * window_width * window_height);

c code snippet end

In my case, window size set as 800 x 600. Define an uint32t represent as 4 bytes * 800 * 600 size buffer array

c code snippet start


void draw_rect(int x, int y, int width, int height, uint32_t color) {
  for(int row = y; row < y + height; row++) {
    for (int col = x; col < x + width; col++){
      color_buffer[(window_width * row) + col] = color;
    }
  }
}

c code snippet end

Draw 200 x 100 on (300, 300) screen position:

c code snippet start

draw_rect( 300 , 300, 200, 100, 0xFFFF00FF)

c code snippet end

Make it fancy:

c code snippet start


for(int j = 0; j < window_height; j+= 60) {
    for(int i = 0; i < window_width; i += 100) {
     draw_rect( i - 10, j - 10, 80, 40, 0xFF00FFFF);
    }
}

c code snippet end

c code snippet start


for(int j = 0; j < window_height; j+= 60) {
    for(int i = 0; i < window_width; i += 100) {
      draw_rect( i - 10, j - 10, 80, 40, 0xFF00FFFF);
      draw_rect( i + 20, j + 20, 80, 40, 0xFFFF00FF);
    }
}

c code snippet end