Previous 199869 Revisions Next

r45066 Sunday 21st February, 2016 at 02:03:26 UTC by Ryan Holtz
More reader support, nw
[src/osd/modules/render]drawbgfx.cpp drawbgfx.h
[src/osd/modules/render/bgfx]chainreader.cpp chainreader.h

trunk/src/osd/modules/render/bgfx/chainreader.cpp
r253577r253578
44#include "emu.h"
55
66#include "chain.h"
7#include "chainreader.h"
87#include "sliderreader.h"
98#include "paramreader.h"
109#include "chainentryreader.h"
10#include "targetmanager.h"
11#include "chainreader.h"
1112
12bgfx_chain* chain_reader::read_from_value(const Value& value, texture_manager& textures, target_manager& targets, effect_manager& effects)
13bgfx_chain* chain_reader::read_from_value(const Value& value, texture_manager& textures, target_manager& targets, effect_manager& effects, uint32_t screen_width, uint32_t screen_height)
1314{
1415    validate_parameters(value);
1516
r253577r253578
4647      }
4748   }
4849
50   if (value.HasMember("targets"))
51   {
52      const Value& target_array = value["targets"];
53      for (UINT32 i = 0; i < target_array.Size(); i++)
54      {
55         assert(target_array[i].HasMember("name"));
56         assert(target_array[i]["name"].IsString());
57         uint32_t width = 0;
58         uint32_t height = 0;
59         if (target_array[i].HasMember("screen") && target_array[i]["screen"].IsBool())
60         {
61            width = screen_width;
62            height = screen_height;
63         }
64         else
65         {
66            assert(target_array[i].HasMember("width"));
67            assert(target_array[i]["width"].IsDouble());
68            assert(target_array[i].HasMember("height"));
69            assert(target_array[i]["height"].IsDouble());
70            width = uint32_t(target_array[i]["width"].GetDouble());
71            height = uint32_t(target_array[i]["height"].GetDouble());
72         }
73         targets.create_target(target_array[i]["name"].GetString(), bgfx::TextureFormat::RGBA8, width, height);
74      }
75   }
76
4977   return new bgfx_chain(name, author, sliders, parameters, entries);
5078}
5179
trunk/src/osd/modules/render/bgfx/chainreader.h
r253577r253578
1313class chain_reader : public state_reader
1414{
1515public:
16    static bgfx_chain* read_from_value(const Value& value, texture_manager& textures, target_manager& targets, effect_manager& effects);
16    static bgfx_chain* read_from_value(const Value& value, texture_manager& textures, target_manager& targets, effect_manager& effects, uint32_t screen_width, uint32_t screen_height);
1717
1818private:
1919    static void validate_parameters(const Value& value);
trunk/src/osd/modules/render/drawbgfx.cpp
r253577r253578
9494   // create renderer
9595
9696   osd_dim wdim = window().get_size();
97   m_width = wdim.width();
98   m_height = wdim.height();
9799   if (window().m_index == 0)
98100   {
99101#ifdef OSD_WINDOWS
r253577r253578
102104      bgfx::sdlSetWindow(window().sdl_window());
103105#endif
104106      bgfx::init();
105      bgfx::reset(wdim.width(), wdim.height(), video_config.waitvsync ? BGFX_RESET_VSYNC : BGFX_RESET_NONE);
107      bgfx::reset(m_width, m_height, video_config.waitvsync ? BGFX_RESET_VSYNC : BGFX_RESET_NONE);
106108      // Enable debug text.
107109      bgfx::setDebug(BGFX_DEBUG_TEXT); //BGFX_DEBUG_STATS
108      m_dimensions = osd_dim(wdim.width(), wdim.height());
110      m_dimensions = osd_dim(m_width, m_height);
109111   }
110112   else
111113   {
112114#ifdef OSD_WINDOWS
113      m_framebuffer = bgfx::createFrameBuffer(window().m_hwnd, wdim.width(), wdim.height());
115      m_framebuffer = bgfx::createFrameBuffer(window().m_hwnd, m_width, m_height);
114116#else
115      m_framebuffer = bgfx::createFrameBuffer(sdlNativeWindowHandle(window().sdl_window()), wdim.width(), wdim.height());
117      m_framebuffer = bgfx::createFrameBuffer(sdlNativeWindowHandle(window().sdl_window()), m_width, m_height);
116118#endif
117119      bgfx::touch(window().m_index);
118120   }
trunk/src/osd/modules/render/drawbgfx.h
r253577r253578
109109   std::vector<rectangle_packer::packable_rectangle> m_texinfo;
110110   rectangle_packer m_packer;
111111
112   uint32_t m_width;
113   uint32_t m_height;
112114   uint32_t m_white[16*16];
113115   enum : uint16_t { CACHE_SIZE = 1024 };
114116   enum : uint32_t { PACKABLE_SIZE = 128 };


Previous 199869 Revisions Next


© 1997-2024 The MAME Team