Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. uint32_t color_pattern(uint32_t first, uint8_t row, uint8_t step, uint8_t col, uint8_t no_rectangles ){ //function to generate the next color
  2.  
  3. uint32_t new_color;
  4.  
  5. if(vbmit.BitsPerPixel == 8){ //if indexed
  6. new_color = (first + (row * no_rectangles + col) * step) % (1 << vbmit.BitsPerPixel);
  7. }
  8. else{
  9. //red
  10. uint32_t redM=((1 << vbmit.RedMaskSize)-1);
  11. uint32_t red=first;
  12. red= (red>>(vbmit.RedFieldPosition)) & redM;
  13. red = (red + col * step) % (1 << vbmit.RedMaskSize);
  14. //green
  15. uint32_t greenM=((1 << vbmit.GreenMaskSize)-1);
  16. uint32_t green=first;
  17. green= (green>>vbmit.GreenFieldPosition) & greenM;
  18. green = (green + row * step)% (1 << vbmit.GreenMaskSize);
  19. //blue
  20. uint32_t blueM=((1 << vbmit.BlueMaskSize)-1);
  21. uint32_t blue = first;
  22. blue=(blue>>vbmit.BlueFieldPosition) & blueM;
  23. blue = (blue + (col + row) * step) % (1 << vbmit.BlueMaskSize);
  24. new_color= ((red<<vbmit.RedFieldPosition) | (green<<vbmit.GreenFieldPosition) | blue );
  25. }
  26. return new_color;
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement