main.c 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. #include <stdio.h>
  2. #include "../RasterIver/headers/rasteriver.h"
  3. #include <time.h>
  4. #include <stdlib.h>
  5. int width = 200;
  6. int height = 200;
  7. int main(){
  8. srand(time(NULL));
  9. RI_SetFlag(RI_FLAG_DEBUG, 1);
  10. RI_SetFlag(RI_FLAG_DEBUG_LEVEL, RI_DEBUG_HIGH);
  11. RI_SetFlag(RI_FLAG_DEBUG_TICK, 0);
  12. RI_SetFlag(RI_FLAG_DEBUG_FPS, 0);
  13. RI_SetFlag(RI_FLAG_SHOW_FPS, 1);
  14. RI_SetFlag(RI_FLAG_SHOW_FRAME, 0);
  15. RI_SetFlag(RI_FLAG_SHOW_BUFFER, RI_BUFFER_COMPLETE);
  16. RI_SetFlag(RI_FLAG_CLEAN_POLYGONS, 1);
  17. RI_SetFlag(RI_FLAG_POPULATE_POLYGONS, 0);
  18. RI_SetFlag(RI_FLAG_BE_MASTER_RENDERER, 1);
  19. RI_SetFlag(RI_FLAG_HANDLE_SDL_EVENTS, 0);
  20. RI_SetFlag(RI_FLAG_SHOW_INFO, 0);
  21. RI_SetFlag(RI_FLAG_USE_CPU, 1);
  22. RI_SetValue(RI_VALUE_WIREFRAME_SCALE, 0.06);
  23. RI_SetValue(RI_VALUE_MINIMUM_CLIP, 90);
  24. char prefix[50] = "[RASTERIVER IS AMAZING] ";
  25. RI_SetDebugPrefix(prefix);
  26. // RI_SetFpsCap(15);
  27. if (RI_Init(width, height, "Rasteriver Test") == RI_ERROR){
  28. return 1;
  29. }
  30. RI_newObject object_buffer[9] = {
  31. {0, 0,100,
  32. 0, 0, 0, 0,
  33. 10, 10, 10,
  34. RI_PMP_TEXTURED,
  35. "objects/cube.obj",
  36. "textures/bill_mcdinner.png"},
  37. {10, 0, 109,
  38. -0.3, 0, 0, 0,
  39. 5, 10, 30,
  40. RI_MATERIAL_HAS_TEXTURE | RI_MATERIAL_DOUBLE_SIDED,
  41. "objects/cube.obj",
  42. "textures/bill_mcdinner.png"},
  43. {0, 0, 107,
  44. 0, 0, 0, 0,
  45. 10, 10, 10,
  46. RI_PMP_TEXTURED | RI_MATERIAL_DOUBLE_SIDED,
  47. "objects/cube.obj",
  48. "textures/bill_mcdinner.png"},
  49. {0, 0, 106,
  50. 0, 0, 0, 0,
  51. 10, 10, 10,
  52. RI_PMP_TEXTURED | RI_MATERIAL_DOUBLE_SIDED,
  53. "objects/cube.obj",
  54. "textures/bill_mcdinner.png"},
  55. {0, 0, 105,
  56. 0, 0,0, 0,
  57. 10, 10, 10,
  58. RI_PMP_TEXTURED | RI_MATERIAL_DOUBLE_SIDED,
  59. "objects/cube.obj",
  60. "textures/bill_mcdinner.png"},
  61. {0, 0, 104,
  62. 0, 0, 0, 0,
  63. 10, 10, 10,
  64. RI_PMP_TEXTURED | RI_MATERIAL_DOUBLE_SIDED,
  65. "objects/cube.obj",
  66. "textures/bill_mcdinner.png"},
  67. {0, 0, 103,
  68. 0, 0, 0, 0,
  69. 10, 10, 10,
  70. RI_PMP_TEXTURED | RI_MATERIAL_DOUBLE_SIDED,
  71. "objects/cube.obj",
  72. "textures/bill_mcdinner.png"},
  73. {0, 0, 102,
  74. 0, 0, 0, 0,
  75. 10, 10, 10,
  76. RI_PMP_TEXTURED | RI_MATERIAL_DOUBLE_SIDED,
  77. "objects/cube.obj",
  78. "textures/bill_mcdinner.png"},
  79. {0, 0, 101,
  80. 0, 0, 0, 0,
  81. 10, 10, 10,
  82. RI_PMP_TEXTURED | RI_MATERIAL_DOUBLE_SIDED,
  83. "objects/cube.obj",
  84. "textures/bill_mcdinner.png"},
  85. };
  86. int objects_to_request = 1;
  87. RI_objects objects = RI_RequestObjects(object_buffer, objects_to_request);
  88. for (int i = 0; i < objects_to_request; i++){
  89. objects[i].material.albedo.a = 255;// * ((float)i / objects_to_request);
  90. objects[i].material.albedo.r = 255;// * ((float)i / objects_to_request);
  91. objects[i].material.albedo.g = 255;// * ((float)i / objects_to_request);
  92. objects[i].material.albedo.b = 255;// * ((float)i / objects_to_request);
  93. }
  94. float frame = 0;
  95. SDL_Event event;
  96. objects[0].transform.rotation.x = -0.7;
  97. int selected_triangle = -1;
  98. while (RI_IsRunning() == RI_RUNNING){
  99. RI_SetValue(RI_VALUE_SELECTED_TRIANGLE, selected_triangle);
  100. // objects[0].transform.rotation.x += 0.1;
  101. // objects[0].transform.rotation.y += 0.02;
  102. // objects[0].transform.rotation.z += rand() % 100 * 0.03;
  103. while( SDL_PollEvent( &event ) ){
  104. switch( event.type ){
  105. /* Keyboard event */
  106. /* Pass the event data onto PrintKeyInfo() */
  107. case SDL_KEYDOWN:
  108. selected_triangle = (selected_triangle + 1) % 12;
  109. break;
  110. /* SDL_QUIT event (window close) */
  111. case SDL_QUIT:
  112. RI_Stop();
  113. break;
  114. default:
  115. break;
  116. }
  117. }
  118. frame -= 0.1;
  119. objects[0].transform.position.z = 100 + sin(frame) * 5;
  120. RI_Tick();
  121. }
  122. RI_Stop();
  123. }