Tkap1

Untitled

Oct 2nd, 2025
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.92 KB | None | 0 0
  1. {
  2.     s_rng rng = make_rng(0);
  3.     s_rng move_rng = make_rng(game->render_time * 0.25f);
  4.  
  5.     // s_list<s_v2, 128> arr;
  6.     constexpr int c_count = 10000;
  7.  
  8.     static b8 foo = false;
  9.     static s_list<s_v2, c_count> arr;
  10.     if(!foo) {
  11.         foo = true;
  12.         arr.count = 0;
  13.  
  14.         for(int i = 0; i < c_count; i += 1) {
  15.             arr.add(wxy(randf32(&rng), randf32(&rng)));
  16.         }
  17.     }
  18.  
  19.     draw_rect(wxy(0.5f), c_world_size, make_rrr(1.0f), 0);
  20.     foreach_ptr(rect_i, rect, arr) {
  21.         // s_v4 color = rand_color_normalized(&rng);
  22.         s_v4 color = make_rgb(0.1f,0,0);
  23.         color.g = range_lerp(rect->x, 0, c_world_size.x, 0, 1);
  24.         color.b = range_lerp(rect->y, 0, c_world_size.y, 0, 1);
  25.         // draw_rect(rect, v2(64), color, 0);
  26.         draw_light(*rect, 8, color, 0.1f, 1);
  27.         s_v2 dir = v2_dir_from_to(g_mouse, *rect);
  28.         float distance = v2_distance(g_mouse, *rect);
  29.         s_v2 push = dir * smoothstep(200, 0, distance) * 40;
  30.         rect->x += cosf(game->render_time + rect_i);
  31.         rect->y += sinf(game->render_time + rect_i * 123.4f);
  32.         *rect += push;
  33.         *rect = prevent_offscreen(*rect, v2(8));
  34.     }
  35.  
  36.     {
  37.         s_render_flush_data data = make_render_flush_data(zero, zero);
  38.         data.projection = ortho;
  39.         data.blend_mode = e_blend_mode_normal;
  40.         data.depth_mode = e_depth_mode_no_read_no_write;
  41.         render_flush(data, true, 0);
  42.     }
  43.  
  44.     {
  45.         clear_framebuffer_color(game->light_fbo.id, make_rrr(0));
  46.         s_render_flush_data data = make_render_flush_data(zero, zero);
  47.         data.projection = ortho;
  48.         data.blend_mode = e_blend_mode_additive;
  49.         data.depth_mode = e_depth_mode_no_read_no_write;
  50.         data.fbo = game->light_fbo;
  51.         render_flush(data, true, 1);
  52.     }
  53.  
  54.     {
  55.         draw_texture_screen(wxy(0.5f), c_world_size, make_rrr(1), e_texture_light, e_shader_flat, v2(0, 1), v2(1, 0), zero, 0);
  56.         s_render_flush_data data = make_render_flush_data(zero, zero);
  57.         data.projection = ortho;
  58.         data.blend_mode = e_blend_mode_multiply;
  59.         data.depth_mode = e_depth_mode_no_read_no_write;
  60.         render_flush(data, true, 0);
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment