1 /* 2 * RenderRasterize_Shader.h 3 * Created by Clemens Unterkofler on 1/20/09. 4 * for Aleph One 5 * 6 * http://www.gnu.org/licenses/gpl.html 7 */ 8 9 10 #ifndef _RENDERRASTERIZE_SHADER__H 11 #define _RENDERRASTERIZE_SHADER__H 12 13 #include "cseries.h" 14 #include "map.h" 15 #include "RenderRasterize.h" 16 #include "OGL_FBO.h" 17 #include "OGL_Textures.h" 18 #include "Rasterizer_Shader.h" 19 20 #include <memory> 21 22 class Blur; 23 class RenderRasterize_Shader : public RenderRasterizerClass { 24 25 std::unique_ptr<Blur> blur; 26 Rasterizer_Shader_Class *RasPtr; 27 28 int objectCount; 29 world_distance objectY; 30 float weaponFlare; 31 float selfLuminosity; 32 33 long_vector2d leftmost_clip, rightmost_clip; 34 35 protected: 36 virtual void render_node(sorted_node_data *node, bool SeeThruLiquids, RenderStep renderStep); 37 virtual void store_endpoint(endpoint_data *endpoint, long_vector2d& p); 38 39 virtual void render_node_floor_or_ceiling( 40 clipping_window_data *window, polygon_data *polygon, horizontal_surface_data *surface, 41 bool void_present, bool ceil, RenderStep renderStep); 42 virtual void render_node_side( 43 clipping_window_data *window, vertical_surface_data *surface, 44 bool void_present, RenderStep renderStep); 45 46 virtual void render_node_object(render_object_data *object, bool other_side_of_media, RenderStep renderStep); 47 48 virtual void clip_to_window(clipping_window_data *win); 49 virtual void _render_node_object_helper(render_object_data *object, RenderStep renderStep); 50 51 void render_viewer_sprite_layer(RenderStep renderStep); 52 void render_viewer_sprite(rectangle_definition& RenderRectangle, RenderStep renderStep); 53 54 public: 55 56 RenderRasterize_Shader(); 57 ~RenderRasterize_Shader(); 58 59 virtual void setupGL(Rasterizer_Shader_Class& Rasterizer); 60 61 virtual void render_tree(void); renders_viewer_sprites_in_tree()62 bool renders_viewer_sprites_in_tree() { return true; } 63 64 TextureManager setupWallTexture(const shape_descriptor& Texture, short transferMode, float pulsate, float wobble, float intensity, float offset, RenderStep renderStep); 65 TextureManager setupSpriteTexture(const rectangle_definition& rect, short type, float offset, RenderStep renderStep); 66 }; 67 68 #endif 69