Unravel Engine C++ Reference
Loading...
Searching...
No Matches
graphics.cpp File Reference
#include "graphics.h"
#include "bgfx/bgfx.h"
#include <bimg/bimg.h>
#include <bx/file.h>
#include <algorithm>
#include <map>
#include <vector>

Go to the source code of this file.

Classes

struct  gfx::gfx_callback
 

Namespaces

namespace  gfx
 

Functions

void gfx::set_trace_logger (const std::function< void(const std::string &, const char *, uint16_t)> &logger)
 
void gfx::set_info_logger (const std::function< void(const std::string &, const char *, uint16_t)> &logger)
 
void gfx::set_warning_logger (const std::function< void(const std::string &, const char *, uint16_t)> &logger)
 
void gfx::set_error_logger (const std::function< void(const std::string &, const char *, uint16_t)> &logger)
 
void gfx::log (const std::string &category, const std::string &log_msg, const char *_filePath, uint16_t _line)
 
void gfx::set_platform_data (const platform_data &_data)
 
void gfx::shutdown ()
 
bool gfx::init (init_type init_data)
 
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[], const float _pos[], 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)
 
void gfx::reset (uint32_t _width, uint32_t _height, uint32_t _flags)
 
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[])
 
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 (view_id _id, program_handle _handle, indirect_buffer_handle _indirectHandle, uint16_t _start, uint16_t _num)
 
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::flush ()
 
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_homogeneous_depth () -> bool
 
auto gfx::is_origin_bottom_left () -> bool
 
auto gfx::get_max_blend_transforms () -> uint32_t
 
auto gfx::get_half_texel () -> float
 
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)
 

Variable Documentation

◆ frame

uint32_t frame {}

Definition at line 21 of file graphics.cpp.

◆ initted

bool initted = false

Definition at line 20 of file graphics.cpp.

◆ u_world

uniform_handle u_world {gfx::invalid_handle}

Definition at line 23 of file graphics.cpp.