summaryrefslogtreecommitdiff
path: root/util/ogl_renderer/c++/lbm_ogl_renderer.cpp
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2026-01-10 23:20:05 +0100
committerClaudius "keldu" Holeksa <mail@keldu.de>2026-01-10 23:20:05 +0100
commit1563ca95b44ea3e0f7384bc3109f366ed761668f (patch)
treea721eafa2955737a467b6bff7df78569d7f29a4c /util/ogl_renderer/c++/lbm_ogl_renderer.cpp
parent393e58b20ece6c9d24af432299dfab6be2402ba8 (diff)
downloadlibs-lbm-1563ca95b44ea3e0f7384bc3109f366ed761668f.tar.gz
Minor renderer for particles
Diffstat (limited to 'util/ogl_renderer/c++/lbm_ogl_renderer.cpp')
-rw-r--r--util/ogl_renderer/c++/lbm_ogl_renderer.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/util/ogl_renderer/c++/lbm_ogl_renderer.cpp b/util/ogl_renderer/c++/lbm_ogl_renderer.cpp
new file mode 100644
index 0000000..b8b687d
--- /dev/null
+++ b/util/ogl_renderer/c++/lbm_ogl_renderer.cpp
@@ -0,0 +1,60 @@
+#include <kel/lbm/lbm.hpp>
+
+#include "state.hpp"
+
+namespace kel {
+namespace lbm {
+namespace sch {
+using namespace saw::schema;
+}
+
+}
+
+saw::error_or<void> lbm_main(int argc, char** argv){
+ auto eo_state = lbm::create_ogl_renderer();
+ if(eo_state.is_error()){
+ return std::move(eo_state.get_error());
+ }
+ auto& state = *(eo_state.get_value());
+
+ bool running{true};
+ while(running){
+ state.clear();
+ glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
+ SDL_GL_SwapWindow(state.window);
+
+ SDL_Event event;
+ while(SDL_PollEvent(&event)){
+ switch(event.type){
+ case SDL_EVENT_QUIT:
+ running = false;
+ break;
+ case SDL_EVENT_KEY_UP:
+ if(event.key.key== SDLK_ESCAPE){
+ running = false;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ return saw::make_void();
+}
+}
+
+int main(int argc, char** argv){
+ auto eov = kel::lbm_main(argc, argv);
+ if(eov.is_error()){
+ auto& err = eov.get_error();
+ std::cerr<<"[Error] "<<err.get_category();
+ auto err_msg = err.get_message();
+ if(err_msg.size() > 0u){
+ std::cerr<<" - "<<err_msg;
+ }
+ std::cerr<<std::endl;
+ return err.get_id();
+ }
+ return 0;
+}