Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void drawCircle(int x, int y, float radius, unsigned long color, bool filled){
- sceKernelDcacheWritebackInvalidateAll();
- LINE_VERTEX *vertices = (LINE_VERTEX*)sceGuGetMemory(180 * sizeof(LINE_VERTEX));
- int j;
- for(int i = 0; i < 180; i++){
- j = i * 2;
- vertices[i].x = (int)(x + vfpu_cosf(j) * radius);
- vertices[i].y = (int)(y + vfpu_sinf(j) * radius);
- vertices[i].z = 0;
- vertices[i].color = color;
- }
- if(filled){
- sceGuDrawArray(GU_TRIANGLE_FAN, GU_COLOR_8888|GU_VERTEX_16BIT|GU_TRANSFORM_2D, 180, 0, vertices);
- }else{
- sceGuDrawArray(GU_LINES, GU_COLOR_8888|GU_VERTEX_16BIT|GU_TRANSFORM_2D, 180, 0, vertices);
- }
- sceKernelDcacheWritebackRange(vertices, 180 * sizeof(LINE_VERTEX)); //SAKYA
- }
- void drawNgone(int x, int y, float radius, int faces, unsigned long color, bool filled){
- float step = PI_2/faces;
- float angle = 0;
- LINE_VERTEX *vertices;
- vertices = (LINE_VERTEX*)sceGuGetMemory(faces * sizeof(LINE_VERTEX));
- for(int i = 0; i < faces; i ++){
- vertices[i].x = (int)(x + vfpu_cosf(angle) * radius);
- vertices[i].y = (int)(y + vfpu_sinf(angle) * radius);
- vertices[i].z = 0;
- vertices[i].color = color;
- angle += step;
- }
- if(filled)
- sceGuDrawArray(GU_TRIANGLE_FAN, GU_COLOR_8888|GU_VERTEX_16BIT|GU_TRANSFORM_2D, faces, 0, vertices);
- else
- sceGuDrawArray(GU_LINES, GU_COLOR_8888|GU_VERTEX_16BIT|GU_TRANSFORM_2D, faces, 0, vertices);
- sceKernelDcacheWritebackRange(vertices, faces * sizeof(LINE_VERTEX)); //SAKYA
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement