Advertisement
xerpi

PSP GU shapes

Jul 31st, 2012
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.46 KB | None | 0 0
  1. void drawCircle(int x, int y, float radius, unsigned long color, bool filled){
  2.     sceKernelDcacheWritebackInvalidateAll();
  3.  
  4.     LINE_VERTEX *vertices = (LINE_VERTEX*)sceGuGetMemory(180 * sizeof(LINE_VERTEX));
  5.     int j;
  6.     for(int i = 0; i < 180; i++){
  7.         j = i * 2;
  8.         vertices[i].x = (int)(x + vfpu_cosf(j) * radius);
  9.         vertices[i].y = (int)(y + vfpu_sinf(j) * radius);
  10.         vertices[i].z = 0;
  11.         vertices[i].color = color;
  12.     }
  13.  
  14.     if(filled){
  15.         sceGuDrawArray(GU_TRIANGLE_FAN, GU_COLOR_8888|GU_VERTEX_16BIT|GU_TRANSFORM_2D, 180, 0, vertices);
  16.     }else{
  17.         sceGuDrawArray(GU_LINES, GU_COLOR_8888|GU_VERTEX_16BIT|GU_TRANSFORM_2D, 180, 0, vertices);
  18.     }
  19.     sceKernelDcacheWritebackRange(vertices, 180 * sizeof(LINE_VERTEX)); //SAKYA
  20. }
  21.  
  22. void drawNgone(int x, int y, float radius, int faces, unsigned long  color, bool filled){
  23.     float step = PI_2/faces;
  24.     float angle = 0;
  25.     LINE_VERTEX *vertices;
  26.  
  27.     vertices = (LINE_VERTEX*)sceGuGetMemory(faces * sizeof(LINE_VERTEX));
  28.    
  29.     for(int i = 0; i < faces; i ++){
  30.         vertices[i].x = (int)(x + vfpu_cosf(angle) * radius);
  31.         vertices[i].y = (int)(y + vfpu_sinf(angle) * radius);
  32.         vertices[i].z = 0;
  33.         vertices[i].color = color;
  34.         angle += step;
  35.     }
  36.     if(filled)
  37.         sceGuDrawArray(GU_TRIANGLE_FAN, GU_COLOR_8888|GU_VERTEX_16BIT|GU_TRANSFORM_2D, faces, 0, vertices);
  38.     else
  39.         sceGuDrawArray(GU_LINES, GU_COLOR_8888|GU_VERTEX_16BIT|GU_TRANSFORM_2D, faces, 0, vertices);
  40.     sceKernelDcacheWritebackRange(vertices, faces * sizeof(LINE_VERTEX)); //SAKYA
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement