Unravel Engine C++ Reference
Loading...
Searching...
No Matches
graphics.h File Reference
#include "format.h"
#include "vertex_decl.h"
#include <bgfx/bgfx.h>
#include <bgfx/embedded_shader.h>
#include <bgfx/platform.h>
#include <bx/allocator.h>
#include <bx/bounds.h>
#include <bx/string.h>
#include <cstdint>
#include <functional>
#include <string>

Go to the source code of this file.

Classes

struct  gfx::clip_quad_def
 

Namespaces

namespace  gfx
 

Macros

#define GFX_INVALID_HANDLE   BGFX_INVALID_HANDLE
 

Typedefs

using gfx::init_type = bgfx::Init
 
using gfx::view_id = bgfx::ViewId
 
using gfx::renderer_type = bgfx::RendererType::Enum
 
using gfx::backbuffer_ratio = bgfx::BackbufferRatio::Enum
 
using gfx::memory_view = bgfx::Memory
 
using gfx::texture_info = bgfx::TextureInfo
 
using gfx::uniform_type = bgfx::UniformType::Enum
 
using gfx::uniform_info = bgfx::UniformInfo
 
using gfx::attachment = bgfx::Attachment
 
using gfx::platform_data = bgfx::PlatformData
 
using gfx::caps = bgfx::Caps
 
using gfx::stats = bgfx::Stats
 
using gfx::access = bgfx::Access::Enum
 
using gfx::view_mode = bgfx::ViewMode::Enum
 
using gfx::occlusion_query_result = bgfx::OcclusionQueryResult::Enum
 
using gfx::topology_conversion = bgfx::TopologyConvert::Enum
 
using gfx::topology_sort = bgfx::TopologySort::Enum
 
using gfx::topology = bgfx::Topology
 
using gfx::release_fn = bgfx::ReleaseFn
 
using gfx::encoder = bgfx::Encoder
 
using gfx::transform = bgfx::Transform
 
using gfx::dynamic_index_buffer_handle = bgfx::DynamicIndexBufferHandle
 
using gfx::dynamic_vertex_buffer_handle = bgfx::DynamicVertexBufferHandle
 
using gfx::frame_buffer_handle = bgfx::FrameBufferHandle
 
using gfx::index_buffer_handle = bgfx::IndexBufferHandle
 
using gfx::indirect_buffer_handle = bgfx::IndirectBufferHandle
 
using gfx::occlusion_query_handle = bgfx::OcclusionQueryHandle
 
using gfx::program_handle = bgfx::ProgramHandle
 
using gfx::shader_handle = bgfx::ShaderHandle
 
using gfx::texture_handle = bgfx::TextureHandle
 
using gfx::uniform_handle = bgfx::UniformHandle
 
using gfx::vertex_buffer_handle = bgfx::VertexBufferHandle
 
using gfx::vertex_layout_handle = bgfx::VertexLayoutHandle
 
using gfx::embedded_shader = bgfx::EmbeddedShader
 
using gfx::transient_vertex_buffer = bgfx::TransientVertexBuffer
 
using gfx::transient_index_buffer = bgfx::TransientIndexBuffer
 
using gfx::instance_data_buffer = bgfx::InstanceDataBuffer
 

Functions

void gfx::set_platform_data (const platform_data &_data)
 
bool gfx::init (init_type init_data)
 
void gfx::shutdown ()
 
void gfx::reset (uint32_t _width, uint32_t _height, uint32_t _flags)
 
void gfx::vertex_pack (const float _input[4], bool _inputNormalized, attribute _attr, const vertex_layout &_decl, void *_data, uint32_t _index)
 
void gfx::vertex_unpack (float _output[4], attribute _attr, const vertex_layout &_decl, const void *_data, uint32_t _index)
 
void gfx::vertex_convert (const vertex_layout &_destDecl, void *_destData, const vertex_layout &_srcDecl, const void *_srcData, uint32_t _num)
 
uint16_t gfx::weld_vertices (uint16_t *_output, const vertex_layout &_decl, const void *_data, uint16_t _num, float _epsilon)
 
uint32_t gfx::topology_convert (topology_conversion _conversion, void *_dst, uint32_t _dstSize, const void *_indices, uint32_t _numIndices, bool _index32)
 
void gfx::topology_sort_tri_list (topology_sort _sort, void *_dst, uint32_t _dstSize, const float _dir[3], const float _pos[3], const void *_vertices, uint32_t _stride, const void *_indices, uint32_t _numIndices, bool _index32)
 
shader_handle gfx::create_embedded_shader (const embedded_shader *_es, renderer_type _type, const char *_name)
 
uint8_t gfx::get_supported_renderers (uint8_t _max, renderer_type *_enum)
 
const char * gfx::get_renderer_name (renderer_type _type)
 
encodergfx::begin ()
 
void gfx::end (encoder *_encoder)
 
uint32_t gfx::frame (bool _capture)
 
renderer_type gfx::get_renderer_type ()
 
const capsgfx::get_caps ()
 
const statsgfx::get_stats ()
 
const memory_viewgfx::alloc (uint32_t _size)
 
const memory_viewgfx::copy (const void *_data, uint32_t _size)
 
const memory_viewgfx::make_ref (const void *_data, uint32_t _size, release_fn _releaseFn, void *_userData)
 
void gfx::set_debug (uint32_t _debug)
 
void gfx::dbg_text_clear (uint8_t _attr, bool _small)
 
void gfx::dbg_text_printf (uint16_t _x, uint16_t _y, uint8_t _attr, const char *_format,...)
 
void gfx::dbg_text_vprintf (uint16_t _x, uint16_t _y, uint8_t _attr, const char *_format, va_list _argList)
 
void gfx::dbg_text_image (uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height, const void *_data, uint16_t _pitch)
 
index_buffer_handle gfx::create_index_buffer (const memory_view *_mem, uint16_t _flags)
 
void gfx::destroy (index_buffer_handle _handle)
 
vertex_buffer_handle gfx::create_vertex_buffer (const memory_view *_mem, const vertex_layout &_decl, uint16_t _flags)
 
void gfx::destroy (vertex_buffer_handle _handle)
 
dynamic_index_buffer_handle gfx::create_dynamic_index_buffer (uint32_t _num, uint16_t _flags)
 
dynamic_index_buffer_handle gfx::create_dynamic_index_buffer (const memory_view *_mem, uint16_t _flags)
 
void gfx::update (dynamic_index_buffer_handle _handle, uint32_t _startIndex, const memory_view *_mem)
 
void gfx::destroy (dynamic_index_buffer_handle _handle)
 
dynamic_vertex_buffer_handle gfx::create_dynamic_vertex_buffer (uint32_t _num, const vertex_layout &_decl, uint16_t _flags)
 
dynamic_vertex_buffer_handle gfx::create_dynamic_vertex_buffer (const memory_view *_mem, const vertex_layout &_decl, uint16_t _flags)
 
void gfx::update (dynamic_vertex_buffer_handle _handle, uint32_t _startVertex, const memory_view *_mem)
 
void gfx::destroy (dynamic_vertex_buffer_handle _handle)
 
uint32_t gfx::get_avail_transient_index_buffer (uint32_t _num, bool _index32)
 
uint32_t gfx::get_avail_transient_vertex_buffer (uint32_t _num, const vertex_layout &_decl)
 
uint32_t gfx::get_avail_instance_data_buffer (uint32_t _num, uint16_t _stride)
 
void gfx::alloc_transient_index_buffer (transient_index_buffer *_tib, uint32_t _num, bool _index32)
 
void gfx::alloc_transient_vertex_buffer (transient_vertex_buffer *_tvb, uint32_t _num, const vertex_layout &_decl)
 
bool gfx::alloc_transient_buffers (transient_vertex_buffer *_tvb, const vertex_layout &_decl, uint32_t _numVertices, transient_index_buffer *_tib, uint32_t _numIndices)
 
void gfx::alloc_instance_data_buffer (instance_data_buffer *_idb, uint32_t _num, uint16_t _stride)
 
indirect_buffer_handle gfx::create_indirect_buffer (uint32_t _num)
 
void gfx::destroy (indirect_buffer_handle _handle)
 
shader_handle gfx::create_shader (const memory_view *_mem)
 
uint16_t gfx::get_shader_uniforms (shader_handle _handle, uniform_handle *_uniforms, uint16_t _max)
 
void gfx::get_uniform_info (uniform_handle _handle, uniform_info &_info)
 
void gfx::set_name (shader_handle _handle, const char *_name, int32_t _len)
 
void gfx::destroy (shader_handle _handle)
 
program_handle gfx::create_program (shader_handle _vsh, shader_handle _fsh, bool _destroyShaders)
 
program_handle gfx::create_program (shader_handle _csh, bool _destroyShaders)
 
void gfx::destroy (program_handle _handle)
 
bool gfx::is_texture_valid (uint16_t _depth, bool _cubeMap, uint16_t _numLayers, texture_format _format, uint64_t _flags)
 
void gfx::calc_texture_size (texture_info &_info, uint16_t _width, uint16_t _height, uint16_t _depth, bool _cubeMap, bool _hasMips, uint16_t _numLayers, texture_format _format)
 
texture_handle gfx::create_texture (const memory_view *_mem, uint64_t _flags, uint8_t _skip, texture_info *_info)
 
texture_handle gfx::create_texture_2d (uint16_t _width, uint16_t _height, bool _hasMips, uint16_t _numLayers, texture_format _format, uint64_t _flags, const memory_view *_mem)
 
texture_handle gfx::create_texture_2d (backbuffer_ratio _ratio, bool _hasMips, uint16_t _numLayers, texture_format _format, uint64_t _flags)
 
texture_handle gfx::create_texture_3d (uint16_t _width, uint16_t _height, uint16_t _depth, bool _hasMips, texture_format _format, uint64_t _flags, const memory_view *_mem)
 
texture_handle gfx::create_texture_cube (uint16_t _size, bool _hasMips, uint16_t _numLayers, texture_format _format, uint64_t _flags, const memory_view *_mem)
 
void gfx::update_texture_2d (texture_handle _handle, uint16_t _layer, uint8_t _mip, uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height, const memory_view *_mem, uint16_t _pitch)
 
void gfx::update_texture_3d (texture_handle _handle, uint8_t _mip, uint16_t _x, uint16_t _y, uint16_t _z, uint16_t _width, uint16_t _height, uint16_t _depth, const memory_view *_mem)
 
void gfx::update_texture_cube (texture_handle _handle, uint16_t _layer, uint8_t _side, uint8_t _mip, uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height, const memory_view *_mem, uint16_t _pitch)
 
uint32_t gfx::read_texture (texture_handle _handle, void *_data, uint8_t _mip)
 
void gfx::set_name (texture_handle _handle, const char *_name, int32_t _len)
 
void gfx::destroy (texture_handle _handle)
 
frame_buffer_handle gfx::create_frame_buffer (uint16_t _width, uint16_t _height, texture_format _format, uint64_t _textureFlags)
 
frame_buffer_handle gfx::create_frame_buffer (backbuffer_ratio _ratio, texture_format _format, uint64_t _textureFlags)
 
frame_buffer_handle gfx::create_frame_buffer (uint8_t _num, const texture_handle *_handles, bool _destroyTextures)
 
frame_buffer_handle gfx::create_frame_buffer (uint8_t _num, const attachment *_attachment, bool _destroyTextures)
 
frame_buffer_handle gfx::create_frame_buffer (void *_nwh, uint16_t _width, uint16_t _height, texture_format _format, texture_format _depthFormat)
 
texture_handle gfx::get_texture (frame_buffer_handle _handle, uint8_t _attachment)
 
void gfx::set_name (frame_buffer_handle _handle, const char *_name, int32_t _len)
 
void gfx::destroy (frame_buffer_handle _handle)
 
uniform_handle gfx::create_uniform (const char *_name, uniform_type _type, uint16_t _num)
 
void gfx::destroy (uniform_handle _handle)
 
occlusion_query_handle gfx::create_occlusion_query ()
 
occlusion_query_result gfx::get_result (occlusion_query_handle _handle, int32_t *_result)
 
void gfx::destroy (occlusion_query_handle _handle)
 
void gfx::set_palette_color (uint8_t _index, uint32_t _rgba)
 
void gfx::set_palette_color (uint8_t _index, const float _rgba[4])
 
void gfx::set_palette_color (uint8_t _index, float _r, float _g, float _b, float _a)
 
void gfx::set_view_name (view_id _id, const char *_name)
 
void gfx::set_view_rect (view_id _id, uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height)
 
void gfx::set_view_rect (view_id _id, uint16_t _x, uint16_t _y, backbuffer_ratio _ratio)
 
void gfx::set_view_scissor (view_id _id, uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height)
 
void gfx::set_view_clear (view_id _id, uint16_t _flags, uint32_t _rgba, float _depth, uint8_t _stencil)
 
void gfx::set_view_clear (view_id _id, uint16_t _flags, float _depth, uint8_t _stencil, uint8_t _0, uint8_t _1, uint8_t _2, uint8_t _3, uint8_t _4, uint8_t _5, uint8_t _6, uint8_t _7)
 
void gfx::set_view_mode (view_id _id, view_mode _mode)
 
void gfx::set_view_frame_buffer (view_id _id, frame_buffer_handle _handle)
 
void gfx::set_view_transform (view_id _id, const void *_view, const void *_proj)
 
void gfx::set_view_order (view_id _id, uint16_t _num, const view_id *_order)
 
void gfx::reset_view (view_id _id)
 
void gfx::set_marker (const char *_marker)
 
void gfx::set_state (uint64_t _state, uint32_t _rgba)
 
void gfx::set_condition (occlusion_query_handle _handle, bool _visible)
 
void gfx::set_stencil (uint32_t _fstencil, uint32_t _bstencil)
 
uint16_t gfx::set_scissor (uint16_t _x, uint16_t _y, uint16_t _width, uint16_t _height)
 
void gfx::set_scissor (uint16_t _cache)
 
uint32_t gfx::set_transform (const void *_mtx, uint16_t _num)
 
uint32_t gfx::alloc_transform (transform *_transform, uint16_t _num)
 
void gfx::set_transform (uint32_t _cache, uint16_t _num)
 
void gfx::set_uniform (uniform_handle _handle, const void *_value, uint16_t _num)
 
void gfx::set_index_buffer (index_buffer_handle _handle)
 
void gfx::set_index_buffer (index_buffer_handle _handle, uint32_t _firstIndex, uint32_t _numIndices)
 
void gfx::set_index_buffer (dynamic_index_buffer_handle _handle)
 
void gfx::set_index_buffer (dynamic_index_buffer_handle _handle, uint32_t _firstIndex, uint32_t _numIndices)
 
void gfx::set_index_buffer (const transient_index_buffer *_tib)
 
void gfx::set_index_buffer (const transient_index_buffer *_tib, uint32_t _firstIndex, uint32_t _numIndices)
 
void gfx::set_vertex_buffer (uint8_t _stream, vertex_buffer_handle _handle)
 
void gfx::set_vertex_buffer (uint8_t _stream, vertex_buffer_handle _handle, uint32_t _startVertex, uint32_t _numVertices)
 
void gfx::set_vertex_buffer (uint8_t _stream, dynamic_vertex_buffer_handle _handle)
 
void gfx::set_vertex_buffer (uint8_t _stream, dynamic_vertex_buffer_handle _handle, uint32_t _startVertex, uint32_t _numVertices)
 
void gfx::set_vertex_buffer (uint8_t _stream, const transient_vertex_buffer *_tvb)
 
void gfx::set_vertex_buffer (uint8_t _stream, const transient_vertex_buffer *_tvb, uint32_t _startVertex, uint32_t _numVertices)
 
void gfx::set_instance_data_buffer (const instance_data_buffer *_idb, uint32_t _start, uint32_t _num)
 
void gfx::set_instance_data_buffer (vertex_buffer_handle _handle, uint32_t _startVertex, uint32_t _num)
 
void gfx::set_instance_data_buffer (dynamic_vertex_buffer_handle _handle, uint32_t _startVertex, uint32_t _num)
 
void gfx::set_texture (uint8_t _stage, uniform_handle _sampler, texture_handle _handle, uint32_t _flags)
 
void gfx::touch (view_id _id)
 
void gfx::submit (view_id _id, program_handle _handle, int32_t _depth, bool _preserveState)
 
void gfx::submit (view_id _id, program_handle _program, occlusion_query_handle _occlusionQuery, int32_t _depth, bool _preserveState)
 
void gfx::submit (view_id _id, program_handle _handle, indirect_buffer_handle _indirectHandle, uint16_t _start, uint16_t _num, int32_t _depth, bool _preserveState)
 
void gfx::set_image (uint8_t _stage, texture_handle _handle, uint8_t _mip, access _access, texture_format _format)
 
void gfx::set_buffer (uint8_t _stage, index_buffer_handle _handle, access _access)
 
void gfx::set_buffer (uint8_t _stage, vertex_buffer_handle _handle, access _access)
 
void gfx::set_buffer (uint8_t _stage, dynamic_index_buffer_handle _handle, access _access)
 
void gfx::set_buffer (uint8_t _stage, dynamic_vertex_buffer_handle _handle, access _access)
 
void gfx::set_buffer (uint8_t _stage, indirect_buffer_handle _handle, access _access)
 
void gfx::dispatch (view_id _id, program_handle _handle, uint32_t _numX, uint32_t _numY, uint32_t _numZ)
 
void gfx::dispatch_indirect (view_id _id, program_handle _handle, indirect_buffer_handle _indirectHandle, uint16_t _start=0, uint16_t _num=1)
 
void gfx::discard (uint8_t _flags)
 
void gfx::blit (view_id _id, texture_handle _dst, uint16_t _dstX, uint16_t _dstY, texture_handle _src, uint16_t _srcX, uint16_t _srcY, uint16_t _width, uint16_t _height)
 
void gfx::blit (view_id _id, texture_handle _dst, uint8_t _dstMip, uint16_t _dstX, uint16_t _dstY, uint16_t _dstZ, texture_handle _src, uint8_t _srcMip, uint16_t _srcX, uint16_t _srcY, uint16_t _srcZ, uint16_t _width, uint16_t _height, uint16_t _depth)
 
void gfx::request_screen_shot (frame_buffer_handle _handle, const char *_filePath)
 
void gfx::set_trace_logger (const std::function< void(const std::string &, const char *_filePath, uint16_t _line)> &logger)
 
void gfx::set_info_logger (const std::function< void(const std::string &, const char *_filePath, uint16_t _line)> &logger)
 
void gfx::set_warning_logger (const std::function< void(const std::string &, const char *_filePath, uint16_t _line)> &logger)
 
void gfx::set_error_logger (const std::function< void(const std::string &, const char *_filePath, uint16_t _line)> &logger)
 
void gfx::flush ()
 
auto gfx::is_origin_bottom_left () -> bool
 
auto gfx::is_homogeneous_depth () -> bool
 
auto gfx::get_half_texel () -> float
 
auto gfx::get_max_blend_transforms () -> uint32_t
 
auto gfx::screen_quad (float dest_width, float dest_height, float depth, float width, float height) -> uint64_t
 
auto gfx::clip_quad (float depth, float width, float height) -> uint64_t
 
uint64_t gfx::clip_quad_ex (const clip_quad_def &def)
 
void gfx::get_size_from_ratio (backbuffer_ratio _ratio, uint16_t &_width, uint16_t &_height)
 
auto gfx::get_renderer_filename_extension (renderer_type _type) -> const std::string &
 
auto gfx::get_current_renderer_filename_extension () -> const std::string &
 
auto gfx::get_renderer_platform_supported_filename_extensions () -> const std::vector< std::string > &
 
auto gfx::get_renderer_based_on_filename_extension (const std::string &_type) -> renderer_type
 
auto gfx::is_supported (uint64_t flag) -> bool
 
bool gfx::check_avail_transient_buffers (uint32_t _numVertices, const vertex_layout &_layout, uint32_t _numIndices, bool _index32)
 
uint32_t gfx::get_render_frame ()
 
void gfx::set_world_transform (const void *_mtx, uint16_t _num)
 

Macro Definition Documentation

◆ GFX_INVALID_HANDLE

#define GFX_INVALID_HANDLE   BGFX_INVALID_HANDLE

Definition at line 17 of file graphics.h.