Elaztek Developer Hub
Blamite Game Engine - blam!  00453.06.08.26.0624.blamite
The core library for the Blamite Game Engine.
BlamBgfxCallbacks.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <bgfx/bgfx.h>
4 #include <sail/sail.h>
5 #include <vector>
6 #include <string>
7 
8 struct BlamBgfxCallbacks : public bgfx::CallbackI
9 {
10 private:
11  sail_image* image = nullptr;
12  sail_image* out_image = nullptr;
13 
14 public:
15  void screenShot(const char* _filePath, uint32_t _width, uint32_t _height,
16  uint32_t _pitch, const void* _data, uint32_t _size, bool _yflip) override;
17 
18  /* -- we dont use any of these atm -- */
19 
20  void fatal(const char* _filePath, uint16_t _line, bgfx::Fatal::Enum _code, const char* _str) override {}
21  void traceVargs(const char* _filePath, uint16_t _line, const char* _format, va_list _argList) override {}
22  void profilerBegin(const char* /*_name*/, uint32_t /*_abgr*/, const char* /*_filePath*/, uint16_t /*_line*/) override {}
23  void profilerBeginLiteral(const char* /*_name*/, uint32_t /*_abgr*/, const char* /*_filePath*/, uint16_t /*_line*/) override {}
24  void profilerEnd() override {}
25  virtual uint32_t cacheReadSize(uint64_t _id) override { return 0; }
26  virtual bool cacheRead(uint64_t _id, void* _data, uint32_t _size) override { return false; }
27  virtual void cacheWrite(uint64_t _id, const void* _data, uint32_t _size) override {}
28  virtual void captureBegin(uint32_t _width, uint32_t _height, uint32_t /*_pitch*/, bgfx::TextureFormat::Enum /*_format*/, bool _yflip) override {}
29  virtual void captureEnd() override {}
30  virtual void captureFrame(const void* _data, uint32_t /*_size*/) override {}
31 
32 private:
33  void ScreenshotCleanup();
34  std::vector<std::string> GetSupportedScreenshotFormats();
35  std::string GetNewScreenshotFilePath();
36 };
Blam::Director::GetCamera
BLAM BlamDirector * GetCamera()
Retrieves the director instance.
Definition: director.cpp:36
VIEWID_GBUFFER
#define VIEWID_GBUFFER
Definition: rendering.h:53
Blam::World::GetWorldState
BLAM BlamWorldState * GetWorldState()
Retrieves the current world state.
Definition: world.cpp:56
ui.h
BlamUserDataFolder::Screenshots
@ Screenshots
Directory used to store engine screenshots. Defaults to {DataRoot}/screenshots/.
Blam::RenderingBGFX::Stats::GetCurrentFrameRate
BLAM float GetCurrentFrameRate()
Definition: bgfx.cpp:443
Blam::Settings::Config::GetEngineConfiguration
BLAM BlamConfigurationFile * GetEngineConfiguration()
Retrieves the main engine configuration file.
Definition: config.cpp:60
shader_reload_hack
bool shader_reload_hack
Definition: bgfx.cpp:42
mouse
mouse_info mouse
Definition: bgfx.cpp:33
tag_camr
#define tag_camr
Definition: camera.h:19
Blam::Network::Init
BLAM bool Init()
Definition: socket.cpp:248
BlamWorldState::GetActiveCamera
BlamWorldObject_Tag * GetActiveCamera()
Definition: BlamWorldState.cpp:253
Blam::Profiling::ResetFrameStats
BLAM void ResetFrameStats()
Definition: stats.cpp:7
BlamRay
Definition: types.h:362
Blam::Logger::LogEvent
BLAM void LogEvent(std::string message)
Logs a message to the log and/or console.
Definition: aliases.cpp:130
screen_vertex::y
float y
Definition: bgfx.cpp:59
Blam::RenderingBGFX::Shutdown
BLAM void Shutdown()
Definition: bgfx.cpp:371
bgfx_ortho_window_size
BlamVector2 bgfx_ortho_window_size
Definition: bgfx.cpp:46
BlamRaycastHit
Definition: types.h:353
scenario.h
Blam::Input::GetMousePosition
BLAM BlamVector2 GetMousePosition()
Definition: mouse.cpp:101
logger.h
Blam::UI::GetUIRoot
BLAM BlamUIWidget_Group * GetUIRoot()
Retrieves the root UI group widget.
Definition: ui.cpp:87
Blam::RenderingBGFX::Shaders::ReleaseShaders
BLAM void ReleaseShaders()
Definition: shaders.cpp:110
BlamWorldObject::scene_node
Ogre::SceneNode * scene_node
Definition: world_objects.h:171
entry
Definition: imgui.h:36
keyboard.h
BlamWorldObject::GetPosition
BlamVector3 GetPosition()
Definition: BlamWorldObject.cpp:222
version_data.h
mouse_info::my
int my
Definition: bgfx.cpp:28
Blam::UI::ImGUI::RenderFrame
BLAM void RenderFrame()
Renders ImGUI to the application window.
Definition: imgui.cpp:170
Blam::Director::Use2DCamera
BLAM bool Use2DCamera()
Definition: director.cpp:74
Blam::RenderingBGFX::RenderLoop
BLAM void RenderLoop()
Definition: bgfx.cpp:161
Blam::GetWin32MainWindowHandle
BLAM HWND GetWin32MainWindowHandle()
Retrieves the main window handle of the application.
Definition: main.cpp:634
Blam::RenderingBGFX::GetRenderHeight
BLAM int GetRenderHeight()
Retrieves the current height of the viewport.
Definition: bgfx.cpp:428
Blam::RenderingBGFX::Shaders::ReloadPendingShaders
BLAM void ReloadPendingShaders()
Definition: shaders.cpp:121
Blam::Director::GetCamera2D
BLAM BlamDirector2D * GetCamera2D()
Definition: director.cpp:69
QF_EXCLUDE_GIZMOS
@ QF_EXCLUDE_GIZMOS
Definition: world_objects.h:81
UsingBgfx
bool UsingBgfx()
Definition: bgfx.cpp:63
director.h
camera
Definition: camera.h:24
BlamBgfxCallbacks.h
Blam::Tick::MaxTicksPerSecond
BLAM int MaxTicksPerSecond()
Retrieves the maximum number of ticks per second.
Definition: tick.cpp:217
BlamBgfxCallbacks::cacheReadSize
virtual uint32_t cacheReadSize(uint64_t _id) override
Definition: BlamBgfxCallbacks.h:25
USER_DATA_PATH
#define USER_DATA_PATH(path)
Macro to quickly access a user data folder.
Definition: config.h:41
BlamBgfxCallbacks::cacheRead
virtual bool cacheRead(uint64_t _id, void *_data, uint32_t _size) override
Definition: BlamBgfxCallbacks.h:26
Blam::RenderingBGFX::Shaders::CreateDefaultUniforms
BLAM void CreateDefaultUniforms()
Definition: shader_uniforms.cpp:11
imgui.h
screen_vertex::u
float u
Definition: bgfx.cpp:60
delta_time
float delta_time
Definition: bgfx.cpp:38
bitmap_filtering_mode::point
@ point
Blam::Director::PrepareCamera
BLAM void PrepareCamera()
Prepares the director for use.
Definition: director.cpp:7
Blam::RenderingBGFX::SetViewClearFlags
BLAM void SetViewClearFlags(uint16_t flags)
Definition: bgfx.cpp:406
Blam::RenderingBGFX::Textures::ReleaseTextures
BLAM void ReleaseTextures()
Definition: bitmaps.cpp:495
BlamWorldObject_Tag::tag_data
BlamTagData * tag_data
Pointer to the tag data associated with this object.
Definition: world_objects.h:304
BlamShadowPass
Definition: passes.h:237
BlamWorldObject_Tag
Class representing a tag-based world object.
Definition: world_objects.h:278
VIEWID_LIGHTING
#define VIEWID_LIGHTING
Definition: rendering.h:54
bgfx_gizmo_pos_3d
BlamVector3 bgfx_gizmo_pos_3d
Definition: bgfx.cpp:44
uint64_t
unsigned long long uint64_t
Definition: stdint.h:18
Blam::RenderingBGFX::Shaders::ForceReloadAllShaders
BLAM void ForceReloadAllShaders()
Definition: shaders.cpp:133
__using_bgfx
bool __using_bgfx
Definition: bgfx.cpp:31
mtxOrtho
void mtxOrtho(float *_result, float _left, float _right, float _bottom, float _top, float _near, float _far, float _offset, bool _homogeneousNdc)
Definition: ogre.cpp:117
Blam::RenderingBGFX::Models::ReleaseModels
BLAM void ReleaseModels()
Definition: models.cpp:230
Blam::Content::Tags::NeedsWorldStateUpdate
BLAM bool NeedsWorldStateUpdate()
Checks if the world state needs to be re-prepared.
Definition: scenario.cpp:25
stats.h
tick.h
CalculateLookAtTarget
BlamVector3 CalculateLookAtTarget(BlamVector3 camera_position, BlamVector3 camera_rotation)
Calculates a look-at target position from a camera position and Euler rotation.
Definition: bgfx.cpp:87
ENGINE_VERSION
#define ENGINE_VERSION
Definition: version_data.h:32
BlamBgfxCallbacks::profilerEnd
void profilerEnd() override
Definition: BlamBgfxCallbacks.h:24
Blam::RenderingBGFX::GetScreenPointFrom3DPoint
BLAM BlamVector2 GetScreenPointFrom3DPoint(BlamVector3 position)
Definition: bgfx.cpp:463
ENGINE_CFG
#define ENGINE_CFG
Macro to allow quicker access to the main configuration file.
Definition: config.h:20
Blam::Tick::GetTotalRuntimeTicks
BLAM uint64_t GetTotalRuntimeTicks()
Gets the total amount of ticks that have elapsed during program runtime.
Definition: tick.cpp:242
BlamUIWidget::SetSize
void SetSize(BlamVector2 new_size)
Sets the size of the widget.
Definition: BlamUIWidget.cpp:405
BlamGBufferPass
GBuffer Pass.
Definition: passes.h:33
Blam::UI::Shutdown
BLAM void Shutdown()
Shuts down the UI system.
Definition: ui.cpp:78
camera::near_clip_distance
real near_clip_distance
Definition: camera.h:27
Blam::RenderingBGFX::IsViewportMode2D
bool IsViewportMode2D()
Definition: bgfx.cpp:555
globals.h
reset_flags
uint32_t reset_flags
Definition: bgfx.cpp:35
passes
std::vector< BlamRenderPass * > passes
Definition: bgfx.cpp:54
Blam::Director::ShutdownCamera
BLAM void ShutdownCamera()
Destroys the director and cleans up any data related to it.
Definition: director.cpp:31
int64_t
long long int64_t
Definition: stdint.h:14
Blam::RenderingBGFX::Shaders::GetUniform
BLAM bgfx::UniformHandle GetUniform(std::string id)
Definition: shader_uniforms.cpp:174
screen_vertex::v
float v
Definition: bgfx.cpp:60
BlamBgfxCallbacks::profilerBegin
void profilerBegin(const char *, uint32_t, const char *, uint16_t) override
Definition: BlamBgfxCallbacks.h:22
Blam::RenderingBGFX::Materials::ReleaseMaterials
void ReleaseMaterials()
Definition: materials.cpp:1014
VIEWID_FORWARD
#define VIEWID_FORWARD
Definition: rendering.h:55
BlamWorldObject::GetRotation
BlamVector3 GetRotation()
Definition: BlamWorldObject.cpp:172
uint32_t
unsigned int uint32_t
Definition: stdint.h:17
Blam::RenderingBGFX::PrepareScreenQuad
BLAM void PrepareScreenQuad()
Definition: bgfx.cpp:515
BlamBgfxCallbacks::captureFrame
virtual void captureFrame(const void *_data, uint32_t) override
Definition: BlamBgfxCallbacks.h:30
Blam::RenderingBGFX::HandleWindowReisze
BLAM void HandleWindowReisze(int width, int height)
Definition: bgfx.cpp:385
Blam::RenderingBGFX::Initialize
BLAM bool Initialize()
Definition: bgfx.cpp:106
BlamBgfxCallbacks::profilerBeginLiteral
void profilerBeginLiteral(const char *, uint32_t, const char *, uint16_t) override
Definition: BlamBgfxCallbacks.h:23
Blam::RenderingBGFX::Passes::GetPassList
BLAM std::vector< BlamRenderPass * > GetPassList()
Definition: bgfx.cpp:540
Blam::RenderingBGFX::CreateRayFromViewportPoint
BLAM BlamRay CreateRayFromViewportPoint(int screen_x, int screen_y)
Constructs a world-space ray from a screen-space cursor position.
Definition: raycast.cpp:10
Blam::RenderingBGFX::GetGizmoMousePosition3D
BLAM BlamVector3 GetGizmoMousePosition3D()
Definition: bgfx.cpp:550
PASS_GBUFFER
#define PASS_GBUFFER
Definition: rendering.h:46
BlamGBufferPass::render_clear_flags
uint16_t render_clear_flags
Definition: passes.h:115
Blam::RenderingBGFX::Materials::InvalidateAllMaterials
void InvalidateAllMaterials()
Definition: materials.cpp:1005
BlamDirector
Class representing the Director.
Definition: director.h:27
QF_ENGINE_GIZMO
@ QF_ENGINE_GIZMO
Definition: world_objects.h:47
camera.h
BlamBgfxCallbacks::fatal
void fatal(const char *_filePath, uint16_t _line, bgfx::Fatal::Enum _code, const char *_str) override
Definition: BlamBgfxCallbacks.h:20
bgfx_mouse_pos_3d
BlamVector3 bgfx_mouse_pos_3d
Definition: bgfx.cpp:43
next_view_id
bgfx::ViewId next_view_id
Definition: bgfx.cpp:55
passes.h
view_matrix_3d
float view_matrix_3d[16]
Definition: bgfx.cpp:40
Blam::RenderingBGFX::GetMousePosition3D
BLAM BlamVector3 GetMousePosition3D()
Definition: bgfx.cpp:545
screen_vertex::x
float x
Definition: bgfx.cpp:59
callbacks_struct
BlamBgfxCallbacks callbacks_struct
Definition: bgfx.cpp:36
camera::far_clip_distance
real far_clip_distance
Definition: camera.h:28
viewport_size
BlamVector2 viewport_size
Definition: bgfx.cpp:37
Blam::RenderingBGFX::GetDefault2DStateFlags
BLAM uint64_t GetDefault2DStateFlags()
Definition: bgfx.cpp:433
Blam::Content::Tags::PrepareNewWorldState
BLAM void PrepareNewWorldState()
Prepares a new world state.
Definition: scenario.cpp:30
Blam::RenderingBGFX::GetCameraProjectionMatrix
BLAM float * GetCameraProjectionMatrix()
Definition: bgfx.cpp:458
is_viewport_2d
bool is_viewport_2d
Definition: bgfx.cpp:48
BlamBgfxCallbacks::screenShot
void screenShot(const char *_filePath, uint32_t _width, uint32_t _height, uint32_t _pitch, const void *_data, uint32_t _size, bool _yflip) override
Definition: BlamBgfxCallbacks.cpp:16
mouse_info
Definition: bgfx.cpp:26
screen_vertex
Definition: bgfx.cpp:57
mouse_info::mx
int mx
Definition: bgfx.cpp:27
imgui.h
BlamLightingPass
Lighting Pass.
Definition: passes.h:138
Blam::RenderingBGFX::GetCameraViewMatrix
BLAM float * GetCameraViewMatrix()
Definition: bgfx.cpp:453
screen_quad_layout
bgfx::VertexLayout screen_quad_layout
Definition: bgfx.cpp:52
BlamUIPass
UI/2D Pass.
Definition: passes.h:150
BlamBgfxCallbacks
Definition: BlamBgfxCallbacks.h:8
bgfx_last_zoom_level
float bgfx_last_zoom_level
Definition: bgfx.cpp:47
Blam::RenderingBGFX::TakeScreenshot
BLAM void TakeScreenshot()
Definition: bgfx.cpp:418
BlamTagData::address
void * address
The address pointing to the start of the tag's data.
Definition: tags.h:132
BlamForwardPass
Forward Pass.
Definition: passes.h:126
screen_quad_vb
bgfx::VertexBufferHandle screen_quad_vb
Definition: bgfx.cpp:51
Blam::RenderingBGFX::Shaders::LoadDefaultShaders
BLAM void LoadDefaultShaders()
Definition: shaders.cpp:10
BlamBgfxCallbacks::captureEnd
virtual void captureEnd() override
Definition: BlamBgfxCallbacks.h:29
VIEWID_2D
#define VIEWID_2D
Definition: rendering.h:57
config.h
Blam::RenderingBGFX::Stats::GetAverageFrameRate
BLAM float GetAverageFrameRate()
Definition: bgfx.cpp:448
Blam::RenderingBGFX::Shaders::DestroyUniforms
BLAM void DestroyUniforms()
Definition: shader_uniforms.cpp:141
BlamSSAOPass
SSAO Pass.
Definition: passes.h:180
screen_vertex::z
float z
Definition: bgfx.cpp:59
Blam::UI::Initialize
BLAM bool Initialize()
Initializes the UI system.
Definition: ui.cpp:19
Blam::RenderingBGFX::Passes::ReserveViewID
BLAM bgfx::ViewId ReserveViewID()
Definition: bgfx.cpp:520
BlamDirector2D
Definition: director.h:184
Blam::RenderingBGFX::SetDefault2DStateFlags
BLAM void SetDefault2DStateFlags(uint64_t flags)
Definition: bgfx.cpp:438
BlamRay::Cast
std::vector< BlamRaycastHit > Cast(bool sort_by_distance, uint16_t max_results, uint32_t query_flags)
Casts a ray against all registered world objects and returns a list of hits.
Definition: BlamRay.cpp:93
BlamRay::GetPointAtDistance
BlamVector3 GetPointAtDistance(float distance)
Returns the world-space point along the ray at the given distance from the origin.
Definition: BlamRay.cpp:170
VIEWID_DEFAULT
#define VIEWID_DEFAULT
Definition: rendering.h:43
BlamBgfxCallbacks::cacheWrite
virtual void cacheWrite(uint64_t _id, const void *_data, uint32_t _size) override
Definition: BlamBgfxCallbacks.h:27
BlamRenderPass
Definition: types.h:89
UINT16_MAX
#define UINT16_MAX
Definition: stdint.h:69
Blam::RenderingBGFX::SetResetFlags
BLAM void SetResetFlags(uint32_t flags)
Definition: bgfx.cpp:412
BlamBgfxCallbacks::captureBegin
virtual void captureBegin(uint32_t _width, uint32_t _height, uint32_t, bgfx::TextureFormat::Enum, bool _yflip) override
Definition: BlamBgfxCallbacks.h:28
state_flags_2d
uint64_t state_flags_2d
Definition: bgfx.cpp:39
uint16_t
unsigned short uint16_t
Definition: stdint.h:16
Blam::RenderingBGFX::GetRenderWidth
BLAM int GetRenderWidth()
Retrieves the current width of the viewport.
Definition: bgfx.cpp:423
BlamPostprocessPass
Postprocess Pass.
Definition: passes.h:162
BlamBgfxCallbacks::traceVargs
void traceVargs(const char *_filePath, uint16_t _line, const char *_format, va_list _argList) override
Definition: BlamBgfxCallbacks.h:21
VIEWID_POSTPROCESS
#define VIEWID_POSTPROCESS
Definition: rendering.h:56
Blam::RenderingBGFX::Passes::GetViewID
BLAM bgfx::ViewId GetViewID(std::string id)
Definition: bgfx.cpp:527
projection_3d
float projection_3d[16]
Definition: bgfx.cpp:41
Blam::RenderingBGFX::Passes::GetPass
BLAM BlamRenderPass * GetPass(std::string id)
Definition: bgfx.cpp:502
Blam::RenderingBGFX::Textures::LoadDefaultTextures
BLAM void LoadDefaultTextures()
Definition: bitmaps.cpp:554
BlamTagData::tag_class
std::string tag_class
The tag's short class name.
Definition: tags.h:146
Blam::Globals::GetGlobalAsInteger
BLAM int * GetGlobalAsInteger(std::string name)
Retrieves a global's value as an int.
Definition: globals.cpp:391