1 // license:BSD-3-Clause 2 // copyright-holders:Ryan Holtz 3 4 #pragma once 5 6 #include "window.h" 7 #include <climits> 8 9 class renderer_bgfx; 10 class bgfx_target; 11 12 class bgfx_view { 13 public: bgfx_view(renderer_bgfx * renderer,uint32_t index,bgfx_target * backbuffer,std::vector<uint32_t> & seen_views)14 bgfx_view(renderer_bgfx *renderer, uint32_t index, bgfx_target *backbuffer, std::vector<uint32_t> &seen_views) 15 : m_renderer(renderer) 16 , m_index(index) 17 , m_backbuffer(backbuffer) 18 , m_seen_views(seen_views) 19 , m_window_index(UINT_MAX) 20 , m_view_width(0) 21 , m_view_height(0) 22 , m_z_near(0.0f) 23 , m_z_far(100.0f) 24 , m_clear_color(0) 25 , m_clear_depth(1.0f) 26 , m_clear_stencil(0) 27 , m_do_clear_color(true) 28 , m_do_clear_depth(true) 29 , m_do_clear_stencil(false) { 30 } ~bgfx_view()31 virtual ~bgfx_view() { } 32 33 void update(); 34 set_backbuffer(bgfx_target * backbuffer)35 void set_backbuffer(bgfx_target *backbuffer) { m_backbuffer = backbuffer; } set_index(uint32_t index)36 void set_index(uint32_t index) { m_index = index; } get_index()37 uint32_t get_index() const { return m_index; } 38 39 virtual void setup() = 0; 40 virtual void setup_matrices() = 0; 41 42 protected: 43 renderer_bgfx *m_renderer; 44 uint32_t m_index; 45 bgfx_target *m_backbuffer; 46 std::vector<uint32_t> &m_seen_views; 47 48 uint32_t m_window_index; 49 uint32_t m_view_width; 50 uint32_t m_view_height; 51 float m_z_near; 52 float m_z_far; 53 54 uint32_t m_clear_color; 55 float m_clear_depth; 56 uint8_t m_clear_stencil; 57 58 bool m_do_clear_color; 59 bool m_do_clear_depth; 60 bool m_do_clear_stencil; 61 }; 62 63 class bgfx_ortho_view : public bgfx_view { 64 public: bgfx_ortho_view(renderer_bgfx * renderer,uint32_t index,bgfx_target * backbuffer,std::vector<uint32_t> & seen_views)65 bgfx_ortho_view(renderer_bgfx *renderer, uint32_t index, bgfx_target *backbuffer, std::vector<uint32_t> &seen_views) : bgfx_view(renderer, index, backbuffer, seen_views) { } 66 67 void setup() override; 68 void setup_matrices() override; 69 }; 70