| Previous | 199869 Revisions | Next |
| r45069 Sunday 21st February, 2016 at 02:52:22 UTC by Ryan Holtz |
|---|
| Fix some compile errors, not sure if all(nw) |
| [src/osd/modules] | osdwindow.cpp |
| [src/osd/modules/render] | draw13.cpp draw13.h drawgdi.cpp drawgdi.h drawsdl.h |
| [src/osd/modules/render/bgfx] | blendreader.cpp blendreader.h chain.cpp chain.h chainentry.cpp chainentry.h chainentryreader.cpp chainentryreader.h chainreader.cpp chainreader.h cullreader.cpp cullreader.h depthreader.cpp depthreader.h effect.cpp effect.h effectmanager.cpp effectmanager.h effectreader.cpp effectreader.h inputpair.cpp inputpair.h parameter.cpp parameter.h paramreader.cpp paramreader.h shadermanager.cpp shadermanager.h slider.cpp slider.h sliderreader.cpp sliderreader.h target.cpp target.h targetmanager.cpp targetmanager.h texture.cpp texture.h texturemanager.cpp texturemanager.h uniform.cpp uniform.h uniformreader.cpp uniformreader.h |
| r253580 | r253581 | |
|---|---|---|
| 7 | 7 | //============================================================ |
| 8 | 8 | |
| 9 | 9 | // standard windows headers |
| 10 | #ifdef OSD_WINDOWS | |
| 10 | 11 | #define WIN32_LEAN_AND_MEAN |
| 11 | 12 | #include <windows.h> |
| 12 | 13 | #include <windowsx.h> |
| 13 | 14 | #include <mmsystem.h> |
| 15 | #endif | |
| 14 | 16 | |
| 15 | 17 | #include "osdwindow.h" |
| 16 | 18 |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // blendreader.cpp - BGFX blend state JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include <bgfx/bgfx.h> |
| 2 | 10 | |
| 3 | 11 | #include "blendreader.h" |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // blendreader.h - BGFX blend state JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_BLEND_READER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // chain.cpp - BGFX screen-space post-effect chain | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include "slider.h" |
| 2 | 10 | #include "parameter.h" |
| 3 | 11 | #include "chainentry.h" |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // chain.h - BGFX screen-space post-effect chain | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_CHAIN__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // chainentry.cpp - BGFX shader post-processing node | |
| 6 | // | |
| 7 | // Represents a single entry in a list of post-processing | |
| 8 | // passes to be applied to a screen quad or buffer. | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 1 | 12 | #include "emu.h" |
| 2 | 13 | |
| 3 | 14 | #include <bgfx/bgfx.h> |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // chainentry.h - BGFX shader post-processing node | |
| 6 | // | |
| 7 | // Represents a single entry in a list of post-processing | |
| 8 | // passes to be applied to a screen quad or buffer. | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 1 | 12 | #pragma once |
| 2 | 13 | |
| 3 | 14 | #ifndef __DRAWBGFX_CHAIN_ENTRY__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // chainentryreader.cpp - BGFX chain entry JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include <string> |
| 2 | 10 | |
| 3 | 11 | #include "emu.h" |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // chainentryreader.h - BGFX chain entry JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_CHAIN_ENTRY_READER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // chainreader.cpp - BGFX chain JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include <string> |
| 2 | 10 | #include <vector> |
| 3 | 11 |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // chainreader.h - BGFX chain JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_CHAIN_READER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // cullreader.cpp - BGFX cull state JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include <bgfx/bgfx.h> |
| 2 | 10 | |
| 3 | 11 | #include "cullreader.h" |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // cullreader.h - BGFX cull state JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_CULL_READER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // depthreader.cpp - BGFX depth state JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include <bgfx/bgfx.h> |
| 2 | 10 | |
| 3 | 11 | #include "depthreader.h" |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // depthreader.h - BGFX depth state JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_DEPTH_READER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // effect.cpp - BGFX shader material to be applied to a mesh | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include "effect.h" |
| 2 | 10 | |
| 3 | 11 | bgfx_effect::bgfx_effect(uint64_t state, bgfx::ShaderHandle vertex_shader, bgfx::ShaderHandle fragment_shader, std::vector<bgfx_uniform*> uniforms) |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // effect.h - BGFX shader material to be applied to a mesh | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_EFFECT__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // effectmanager.cpp - BGFX shader effect manager | |
| 6 | // | |
| 7 | // Maintains a string-to-entry lookup of BGFX shader | |
| 8 | // effects, defined by effect.h and read by effectreader.h | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 1 | 12 | #include "emu.h" |
| 2 | 13 | |
| 3 | 14 | #include <rapidjson/document.h> |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // effectmanager.h - BGFX shader effect manager | |
| 6 | // | |
| 7 | // Maintains a string-to-entry lookup of BGFX shader | |
| 8 | // effects, defined by effect.h and read by effectreader.h | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 1 | 12 | #pragma once |
| 2 | 13 | |
| 3 | 14 | #ifndef __DRAWBGFX_EFFECT_MANAGER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // effectreader.cpp - BGFX effect JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include <string> |
| 2 | 10 | |
| 3 | 11 | #include <bgfx/bgfx.h> |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // effectreader.h - BGFX effect JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_EFFECT_READER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // inputpair.h - BGFX sampler-and-texture pair | |
| 6 | // | |
| 7 | // Keeps track of the texture which is bound to the sampler | |
| 8 | // which is bound to the specified stage index. | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 1 | 12 | #include "inputpair.h" |
| 2 | 13 | #include "texture.h" |
| 3 | 14 | #include "effect.h" |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // inputpair.h - BGFX sampler-and-texture pair | |
| 6 | // | |
| 7 | // Keeps track of the texture which is bound to the sampler | |
| 8 | // which is bound to the specified stage index. | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 1 | 12 | #pragma once |
| 2 | 13 | |
| 3 | 14 | #ifndef __DRAWBGFX_INPUT_PAIR__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // parameter.cpp - BGFX shader parameter | |
| 6 | // | |
| 7 | // A value that represents some form of parametric | |
| 8 | // operation, which can be fed to the input of a BGFX | |
| 9 | // shader uniform. | |
| 10 | // | |
| 11 | //============================================================ | |
| 12 | ||
| 1 | 13 | #include "emu.h" |
| 2 | 14 | |
| 15 | // NB: NOT FINISHED! | |
| 16 | ||
| 3 | 17 | #include "parameter.h" |
| 4 | 18 | |
| 5 | 19 | bgfx_parameter::bgfx_parameter(std::string name, parameter_type type, int period) |
| r253580 | r253581 | |
| 16 | 30 | |
| 17 | 31 | void bgfx_parameter::frame() |
| 18 | 32 | { |
| 19 | m_frame++; | |
| 20 | if (m_frame == m_period) | |
| 33 | switch(m_type) | |
| 21 | 34 | { |
| 22 | m_frame = 0; | |
| 35 | case PARAM_FRAME_MASK: | |
| 36 | m_frame++; | |
| 37 | if (m_frame == m_period) | |
| 38 | { | |
| 39 | m_frame = 0; | |
| 40 | } | |
| 41 | break; | |
| 42 | default: | |
| 43 | break; | |
| 23 | 44 | } |
| 24 | 45 | } |
| 25 | 46 | |
| 26 | 47 | bool bgfx_parameter::active() |
| 27 | 48 | { |
| 28 | return (m_frame % m_period == 0); | |
| 49 | switch (m_type) | |
| 50 | { | |
| 51 | case PARAM_FRAME_MASK: | |
| 52 | return (m_frame % m_period == 0); | |
| 53 | default: | |
| 54 | return false; | |
| 55 | } | |
| 29 | 56 | } |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // parameter.h - BGFX shader parameter | |
| 6 | // | |
| 7 | // A value that represents some form of parametric | |
| 8 | // operation, which can be fed to the input of a BGFX | |
| 9 | // shader uniform. | |
| 10 | // | |
| 11 | //============================================================ | |
| 12 | ||
| 1 | 13 | #pragma once |
| 2 | 14 | |
| 3 | 15 | #ifndef __DRAWBGFX_PARAMETER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // paramreader.cpp - BGFX shader parameter JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include <string> |
| 2 | 10 | |
| 3 | 11 | #include "paramreader.h" |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // paramreader.h - BGFX shader parameter JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_PARAM_READER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // shadermanager.cpp - BGFX shader manager | |
| 6 | // | |
| 7 | // Maintains a mapping between strings and BGFX shaders, | |
| 8 | // either vertex or pixel/fragment. | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 1 | 12 | #include "emu.h" |
| 2 | 13 | |
| 3 | 14 | #include <bgfx/bgfxplatform.h> |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // shadermanager.h - BGFX shader manager | |
| 6 | // | |
| 7 | // Maintains a mapping between strings and BGFX shaders, | |
| 8 | // either vertex or pixel/fragment. | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 1 | 12 | #pragma once |
| 2 | 13 | |
| 3 | 14 | #ifndef __DRAWBGFX_SHADER_MANAGER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // slider.cpp - BGFX shader parameter slider | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include "emu.h" |
| 2 | 10 | |
| 3 | 11 | #include "slider.h" |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // slider.h - BGFX shader parameter slider | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_SLIDER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================== | |
| 4 | // | |
| 5 | // sliderreader.cpp - BGFX shader parameter slider JSON reader | |
| 6 | // | |
| 7 | //============================================================== | |
| 8 | ||
| 1 | 9 | #include "emu.h" |
| 2 | 10 | |
| 3 | 11 | #include "sliderreader.h" |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // sliderreader.h - BGFX shader parameter slider JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_SLIDER_READER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // target.cpp - Render target abstraction for BGFX layer | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include "target.h" |
| 2 | 10 | |
| 3 | 11 | bgfx_target::bgfx_target(std::string name, bgfx::TextureFormat::Enum format, uint32_t width, uint32_t height, bool filter) |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // target.h - Render target abstraction for BGFX layer | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_TARGET__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // targetmanager.cpp - BGFX render target manager | |
| 6 | // | |
| 7 | // Maintains a string-to-entry mapping for any registered | |
| 8 | // render targets. | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 1 | 12 | #include <bgfx/bgfx.h> |
| 2 | 13 | |
| 3 | 14 | #include "targetmanager.h" |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // targetmanager.h - BGFX render target manager | |
| 6 | // | |
| 7 | // Maintains a string-to-entry mapping for any registered | |
| 8 | // render targets. | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 1 | 12 | #pragma once |
| 2 | 13 | |
| 3 | 14 | #ifndef __DRAWBGFX_TARGET_MANAGER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // texture.cpp - Texture abstraction for BGFX layer | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include "emu.h" |
| 2 | 10 | |
| 3 | 11 | #include "texture.h" |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // texture.h - Texture abstraction for BGFX layer | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_TEXTURE__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // texturemanager.cpp - BGFX texture manager | |
| 6 | // | |
| 7 | // Maintains a string-to-entry mapping for any registered | |
| 8 | // textures. | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 1 | 12 | #include <bgfx/bgfx.h> |
| 2 | 13 | |
| 3 | 14 | #include "texturemanager.h" |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // texturemanager.h - BGFX texture manager | |
| 6 | // | |
| 7 | // Maintains a string-to-entry mapping for any registered | |
| 8 | // textures. | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 1 | 12 | #pragma once |
| 2 | 13 | |
| 3 | 14 | #ifndef __DRAWBGFX_TEXTURE_MANAGER__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // uniform.cpp - Shader uniform abstraction for BGFX layer | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include "uniform.h" |
| 2 | 10 | |
| 3 | 11 | bgfx_uniform::bgfx_uniform(std::string name, bgfx::UniformType::Enum type) |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // uniform.h - Shader uniform abstraction for BGFX layer | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_UNIFORM__ |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // uniformreader.cpp - BGFX shader uniform JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #include "uniformreader.h" |
| 2 | 10 | #include "uniform.h" |
| 3 | 11 |
| r253580 | r253581 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Ryan Holtz | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // uniformreader.h - BGFX shader uniform JSON reader | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 1 | 9 | #pragma once |
| 2 | 10 | |
| 3 | 11 | #ifndef __DRAWBGFX_UNIFORM_READER__ |
| r253580 | r253581 | |
|---|---|---|
| 62 | 62 | |
| 63 | 63 | renderer_sdl1::renderer_sdl1(osd_window *window, int extra_flags) |
| 64 | 64 | : osd_renderer(window, extra_flags) |
| 65 | , m_sdl_renderer( | |
| 65 | , m_sdl_renderer(nullptr) | |
| 66 | 66 | , m_blittimer(0) |
| 67 | 67 | , m_last_hofs(0) |
| 68 | 68 | , m_last_vofs(0) |
| r253580 | r253581 | |
| 180 | 180 | { -1 }, |
| 181 | 181 | }; |
| 182 | 182 | |
| 183 | copy_info_t* renderer_sdl1::s_blit_info[SDL_TEXFORMAT_LAST+1] = { | |
| 183 | copy_info_t* renderer_sdl1::s_blit_info[SDL_TEXFORMAT_LAST+1] = { nullptr }; | |
| 184 | 184 | bool renderer_sdl1::s_blit_info_initialized = false; |
| 185 | 185 | |
| 186 | 186 | //============================================================ |
| r253580 | r253581 | |
| 261 | 261 | set_coloralphamode(m_texture_id, &prim->color); |
| 262 | 262 | //printf("%d %d %d %d\n", target_rect.x, target_rect.y, target_rect.w, target_rect.h); |
| 263 | 263 | // Arghhh .. Just another bug. SDL_RenderCopy has severe issues with scaling ... |
| 264 | SDL_RenderCopy(m_renderer->m_sdl_renderer, m_texture_id, NULL, &target_rect); | |
| 265 | //SDL_RenderCopyEx(m_renderer->m_sdl_renderer, m_texture_id, NULL, &target_rect, 0, NULL, SDL_FLIP_NONE); | |
| 266 | //SDL_RenderCopyEx(m_renderer->m_sdl_renderer, m_texture_id, NULL, NULL, 0, NULL, SDL_FLIP_NONE); | |
| 264 | SDL_RenderCopy(m_renderer->m_sdl_renderer, m_texture_id, nullptr, &target_rect); | |
| 265 | //SDL_RenderCopyEx(m_renderer->m_sdl_renderer, m_texture_id, nullptr, &target_rect, 0, nullptr, SDL_FLIP_NONE); | |
| 266 | //SDL_RenderCopyEx(m_renderer->m_sdl_renderer, m_texture_id, nullptr, nullptr, 0, nullptr, SDL_FLIP_NONE); | |
| 267 | 267 | } |
| 268 | 268 | |
| 269 | 269 | void renderer_sdl1::render_quad(texture_info *texture, const render_primitive *prim, const int x, const int y) |
| r253580 | r253581 | |
| 370 | 370 | // Load the GL library now - else MT will fail |
| 371 | 371 | const char *stemp = downcast<sdl_options &>(machine.options()).gl_lib(); |
| 372 | 372 | #else |
| 373 | const char *stemp = | |
| 373 | const char *stemp = nullptr; | |
| 374 | 374 | #endif |
| 375 | if (stemp != NULL && strcmp(stemp, OSDOPTVAL_AUTO) == 0) | |
| 376 | stemp = NULL; | |
| 375 | if (stemp != nullptr && strcmp(stemp, OSDOPTVAL_AUTO) == 0) | |
| 376 | stemp = nullptr; | |
| 377 | 377 | |
| 378 | 378 | // No fatalerror here since not all video drivers support GL ! |
| 379 | if (SDL_GL_LoadLibrary(stemp) != 0) // Load library (default for e== | |
| 379 | if (SDL_GL_LoadLibrary(stemp) != 0) // Load library (default for e==nullptr | |
| 380 | 380 | osd_printf_warning("Warning: Unable to load opengl library: %s\n", stemp ? stemp : "<default>"); |
| 381 | 381 | else |
| 382 | 382 | osd_printf_verbose("Loaded opengl shared library: %s\n", stemp ? stemp : "<default>"); |
| r253580 | r253581 | |
| 408 | 408 | RF_ENTRY(SDL_RENDERER_PRESENTVSYNC), |
| 409 | 409 | RF_ENTRY(SDL_RENDERER_ACCELERATED), |
| 410 | 410 | RF_ENTRY(SDL_RENDERER_TARGETTEXTURE), |
| 411 | {-1, | |
| 411 | {-1, nullptr} | |
| 412 | 412 | }; |
| 413 | 413 | int i; |
| 414 | 414 | |
| 415 | 415 | osd_printf_verbose("window: using renderer %s\n", render_info->name ? render_info->name : "<unknown>"); |
| 416 | for (i = 0; rflist[i].name != | |
| 416 | for (i = 0; rflist[i].name != nullptr; i++) | |
| 417 | 417 | if (render_info->flags & rflist[i].flag) |
| 418 | 418 | osd_printf_verbose("renderer: flag %s\n", rflist[i].name); |
| 419 | 419 | } |
| r253580 | r253581 | |
| 500 | 500 | int renderer_sdl1::draw(int update) |
| 501 | 501 | { |
| 502 | 502 | render_primitive *prim; |
| 503 | texture_info *texture= | |
| 503 | texture_info *texture=nullptr; | |
| 504 | 504 | float vofs, hofs; |
| 505 | 505 | int blit_pixels = 0; |
| 506 | 506 | |
| r253580 | r253581 | |
| 516 | 516 | destroy_all_textures(); |
| 517 | 517 | m_width = wdim.width(); |
| 518 | 518 | m_height = wdim.height(); |
| 519 | SDL_RenderSetViewport(m_sdl_renderer, | |
| 519 | SDL_RenderSetViewport(m_sdl_renderer, nullptr); | |
| 520 | 520 | m_blittimer = 3; |
| 521 | 521 | clear_flags(FI_CHANGED); |
| 522 | 522 | } |
| r253580 | r253581 | |
| 529 | 529 | SDL_SetRenderDrawBlendMode(m_sdl_renderer, SDL_BLENDMODE_NONE); |
| 530 | 530 | //SDL_SetRenderDrawColor(0,0,0,255); |
| 531 | 531 | SDL_SetRenderDrawColor(m_sdl_renderer, 0,0,0,0); |
| 532 | SDL_RenderFillRect(m_sdl_renderer, | |
| 532 | SDL_RenderFillRect(m_sdl_renderer, nullptr); | |
| 533 | 533 | m_blittimer--; |
| 534 | 534 | } |
| 535 | 535 | |
| r253580 | r253581 | |
| 559 | 559 | window().m_primlist->acquire_lock(); |
| 560 | 560 | |
| 561 | 561 | // now draw |
| 562 | for (prim = window().m_primlist->first(); prim != | |
| 562 | for (prim = window().m_primlist->first(); prim != nullptr; prim = prim->next()) | |
| 563 | 563 | { |
| 564 | 564 | Uint8 sr, sg, sb, sa; |
| 565 | 565 | |
| r253580 | r253581 | |
| 610 | 610 | |
| 611 | 611 | copy_info_t *texture_info::compute_size_type() |
| 612 | 612 | { |
| 613 | copy_info_t *result = | |
| 613 | copy_info_t *result = nullptr; | |
| 614 | 614 | int maxperf = 0; |
| 615 | 615 | |
| 616 | for (copy_info_t *bi = renderer_sdl1::s_blit_info[m_format]; bi != | |
| 616 | for (copy_info_t *bi = renderer_sdl1::s_blit_info[m_format]; bi != nullptr; bi = bi->next) | |
| 617 | 617 | { |
| 618 | 618 | if ((m_is_rotated == bi->blitter->m_is_rot) |
| 619 | 619 | && (m_sdl_blendmode == bi->bm_mask)) |
| r253580 | r253581 | |
| 636 | 636 | return result; |
| 637 | 637 | |
| 638 | 638 | /* try last resort handlers */ |
| 639 | for (copy_info_t *bi = renderer_sdl1::s_blit_info[m_format]; bi != | |
| 639 | for (copy_info_t *bi = renderer_sdl1::s_blit_info[m_format]; bi != nullptr; bi = bi->next) | |
| 640 | 640 | { |
| 641 | 641 | if ((m_is_rotated == bi->blitter->m_is_rot) |
| 642 | 642 | && (m_sdl_blendmode == bi->bm_mask)) |
| r253580 | r253581 | |
| 644 | 644 | return bi; |
| 645 | 645 | } |
| 646 | 646 | //FIXME: crash implement a -do nothing handler */ |
| 647 | return | |
| 647 | return nullptr; | |
| 648 | 648 | } |
| 649 | 649 | |
| 650 | 650 | // FIXME: |
| r253580 | r253581 | |
| 739 | 739 | if (m_sdl_access == SDL_TEXTUREACCESS_STATIC) |
| 740 | 740 | { |
| 741 | 741 | if (m_copyinfo->blitter->m_is_passthrough) |
| 742 | m_pixels = | |
| 742 | m_pixels = nullptr; | |
| 743 | 743 | else |
| 744 | 744 | m_pixels = malloc(m_setup.rotwidth * m_setup.rotheight * m_copyinfo->blitter->m_dest_bpp); |
| 745 | 745 | } |
| r253580 | r253581 | |
| 749 | 749 | |
| 750 | 750 | texture_info::~texture_info() |
| 751 | 751 | { |
| 752 | if ( is_pixels_owned() && (m_pixels != | |
| 752 | if ( is_pixels_owned() && (m_pixels != nullptr) ) | |
| 753 | 753 | free(m_pixels); |
| 754 | 754 | SDL_DestroyTexture(m_texture_id); |
| 755 | 755 | } |
| r253580 | r253581 | |
| 773 | 773 | m_pitch = m_setup.rotwidth * m_copyinfo->blitter->m_dest_bpp; |
| 774 | 774 | m_copyinfo->blitter->texop(this, &texsource); |
| 775 | 775 | } |
| 776 | SDL_UpdateTexture(m_texture_id, | |
| 776 | SDL_UpdateTexture(m_texture_id, nullptr, m_pixels, m_pitch); | |
| 777 | 777 | } |
| 778 | 778 | else |
| 779 | 779 | { |
| 780 | SDL_LockTexture(m_texture_id, | |
| 780 | SDL_LockTexture(m_texture_id, nullptr, (void **) &m_pixels, &m_pitch); | |
| 781 | 781 | if ( m_copyinfo->blitter->m_is_passthrough ) |
| 782 | 782 | { |
| 783 | 783 | UINT8 *src = (UINT8 *) texsource.base; |
| r253580 | r253581 | |
| 872 | 872 | osd_ticks_t now = osd_ticks(); |
| 873 | 873 | |
| 874 | 874 | // find a match |
| 875 | for (texture = m_texlist.first(); texture != | |
| 875 | for (texture = m_texlist.first(); texture != nullptr; ) | |
| 876 | 876 | if (texture->hash() == texhash && |
| 877 | 877 | texture->matches(prim, setup)) |
| 878 | 878 | { |
| r253580 | r253581 | |
| 880 | 880 | if ((texture->m_copyinfo->samples & 0x7f) == 0x7f) |
| 881 | 881 | { |
| 882 | 882 | if (texture->m_copyinfo != texture->compute_size_type()) |
| 883 | return | |
| 883 | return nullptr; | |
| 884 | 884 | } |
| 885 | 885 | texture->m_last_access = now; |
| 886 | 886 | return texture; |
| r253580 | r253581 | |
| 895 | 895 | } |
| 896 | 896 | |
| 897 | 897 | // nothing found |
| 898 | return | |
| 898 | return nullptr; | |
| 899 | 899 | } |
| 900 | 900 | |
| 901 | 901 | //============================================================ |
| r253580 | r253581 | |
| 912 | 912 | texture = texture_find(prim, setup); |
| 913 | 913 | |
| 914 | 914 | // if we didn't find one, create a new texture |
| 915 | if (texture == | |
| 915 | if (texture == nullptr && prim.texture.base != nullptr) | |
| 916 | 916 | { |
| 917 | 917 | texture = global_alloc(texture_info(this, prim.texture, setup, prim.flags)); |
| 918 | 918 | /* add us to the texture list */ |
| 919 | 919 | m_texlist.prepend(*texture); |
| 920 | 920 | } |
| 921 | 921 | |
| 922 | if (texture != | |
| 922 | if (texture != nullptr) | |
| 923 | 923 | { |
| 924 | if (prim.texture.base != | |
| 924 | if (prim.texture.base != nullptr && texture->texinfo().seqid != prim.texture.seqid) | |
| 925 | 925 | { |
| 926 | 926 | texture->texinfo().seqid = prim.texture.seqid; |
| 927 | 927 | // if we found it, but with a different seqid, copy the data |
| r253580 | r253581 | |
|---|---|---|
| 161 | 161 | { |
| 162 | 162 | for (int i = 0; i <= SDL_TEXFORMAT_LAST; i++) |
| 163 | 163 | { |
| 164 | for (copy_info_t *bi = s_blit_info[i]; bi != | |
| 164 | for (copy_info_t *bi = s_blit_info[i]; bi != nullptr; ) | |
| 165 | 165 | { |
| 166 | 166 | if (bi->pixel_count) |
| 167 | 167 | osd_printf_verbose("%s -> %s %s blendmode 0x%02x, %d samples: %d KPixel/sec\n", bi->srcname, bi->dstname, |
| r253580 | r253581 | |
| 171 | 171 | bi = bi->next; |
| 172 | 172 | global_free(freeme); |
| 173 | 173 | } |
| 174 | s_blit_info[i] = | |
| 174 | s_blit_info[i] = nullptr; | |
| 175 | 175 | } |
| 176 | 176 | s_blit_info_initialized = false; |
| 177 | 177 | } |
| r253580 | r253581 | |
|---|---|---|
| 16 | 16 | renderer_gdi::~renderer_gdi() |
| 17 | 17 | { |
| 18 | 18 | // free the bitmap memory |
| 19 | if (m_bmdata != | |
| 19 | if (m_bmdata != nullptr) | |
| 20 | 20 | global_free_array(m_bmdata); |
| 21 | 21 | } |
| 22 | 22 |
| r253580 | r253581 | |
|---|---|---|
| 31 | 31 | public: |
| 32 | 32 | renderer_gdi(osd_window *window) |
| 33 | 33 | : osd_renderer(window, FLAG_NONE) |
| 34 | , m_bmdata( | |
| 34 | , m_bmdata(nullptr) | |
| 35 | 35 | , m_bmsize(0) |
| 36 | 36 | { |
| 37 | 37 | } |
| r253580 | r253581 | |
|---|---|---|
| 22 | 22 | |
| 23 | 23 | renderer_sdl2(osd_window *w, int extra_flags) |
| 24 | 24 | : osd_renderer(w, extra_flags) |
| 25 | , m_sdl_renderer(NULL) | |
| 26 | , m_texture_id(NULL) | |
| 27 | , m_yuv_lookup(NULL) | |
| 28 | , m_yuv_bitmap(NULL) | |
| 25 | , m_sdl_renderer(nullptr) | |
| 26 | , m_texture_id(nullptr) | |
| 27 | , m_yuv_lookup(nullptr) | |
| 28 | , m_yuv_bitmap(nullptr) | |
| 29 | 29 | //, m_hw_scale_width(0) |
| 30 | 30 | //, m_hw_scale_height(0) |
| 31 | 31 | , m_last_hofs(0) |
| https://github.com/mamedev/mame/commit/c13089a065523ee1a302b95bcf111ac8264e8444 |
| Previous | 199869 Revisions | Next |