yaze
0.3.2
Link to the Past ROM Editor
Loading...
Searching...
No Matches
metal_renderer.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
app/gfx/backend/irenderer.h
"
4
5
namespace
yaze
{
6
namespace
gfx {
7
8
class
MetalRenderer
final :
public
IRenderer
{
9
public
:
10
MetalRenderer
() =
default
;
11
~MetalRenderer
()
override
;
12
13
bool
Initialize
(SDL_Window* window)
override
;
14
void
Shutdown
()
override
;
15
16
TextureHandle
CreateTexture
(
int
width,
int
height)
override
;
17
TextureHandle
CreateTextureWithFormat
(
int
width,
int
height, uint32_t format,
18
int
access)
override
;
19
void
UpdateTexture
(
TextureHandle
texture,
const
Bitmap
& bitmap)
override
;
20
void
DestroyTexture
(
TextureHandle
texture)
override
;
21
bool
LockTexture
(
TextureHandle
texture, SDL_Rect* rect,
void
** pixels,
22
int
* pitch)
override
;
23
void
UnlockTexture
(
TextureHandle
texture)
override
;
24
25
void
Clear
()
override
;
26
void
Present
()
override
;
27
void
RenderCopy
(
TextureHandle
texture,
const
SDL_Rect* srcrect,
28
const
SDL_Rect* dstrect)
override
;
29
void
SetRenderTarget
(
TextureHandle
texture)
override
;
30
void
SetDrawColor
(SDL_Color color)
override
;
31
void
*
GetBackendRenderer
()
override
;
32
33
void
SetMetalView
(
void
* view);
34
35
private
:
36
void
*
metal_view_
=
nullptr
;
37
void
*
command_queue_
=
nullptr
;
38
TextureHandle
render_target_
=
nullptr
;
39
};
40
41
}
// namespace gfx
42
}
// namespace yaze
yaze::gfx::Bitmap
Represents a bitmap image optimized for SNES ROM hacking.
Definition
bitmap.h:67
yaze::gfx::IRenderer
Defines an abstract interface for all rendering operations.
Definition
irenderer.h:40
yaze::gfx::MetalRenderer
Definition
metal_renderer.h:8
yaze::gfx::MetalRenderer::RenderCopy
void RenderCopy(TextureHandle texture, const SDL_Rect *srcrect, const SDL_Rect *dstrect) override
Copies a portion of a texture to the current render target.
Definition
metal_renderer.mm:169
yaze::gfx::MetalRenderer::Shutdown
void Shutdown() override
Shuts down the renderer and releases all associated resources.
Definition
metal_renderer.mm:53
yaze::gfx::MetalRenderer::command_queue_
void * command_queue_
Definition
metal_renderer.h:37
yaze::gfx::MetalRenderer::CreateTexture
TextureHandle CreateTexture(int width, int height) override
Creates a new, empty texture.
Definition
metal_renderer.mm:61
yaze::gfx::MetalRenderer::Initialize
bool Initialize(SDL_Window *window) override
Initializes the renderer with a given window.
Definition
metal_renderer.mm:26
yaze::gfx::MetalRenderer::SetMetalView
void SetMetalView(void *view)
Definition
metal_renderer.mm:238
yaze::gfx::MetalRenderer::MetalRenderer
MetalRenderer()=default
yaze::gfx::MetalRenderer::SetRenderTarget
void SetRenderTarget(TextureHandle texture) override
Sets the render target for subsequent drawing operations.
Definition
metal_renderer.mm:226
yaze::gfx::MetalRenderer::CreateTextureWithFormat
TextureHandle CreateTextureWithFormat(int width, int height, uint32_t format, int access) override
Creates a new texture with a specific pixel format.
Definition
metal_renderer.mm:94
yaze::gfx::MetalRenderer::DestroyTexture
void DestroyTexture(TextureHandle texture) override
Destroys a texture and frees its associated resources.
Definition
metal_renderer.mm:136
yaze::gfx::MetalRenderer::UpdateTexture
void UpdateTexture(TextureHandle texture, const Bitmap &bitmap) override
Updates a texture with the pixel data from a Bitmap.
Definition
metal_renderer.mm:102
yaze::gfx::MetalRenderer::Present
void Present() override
Presents the back buffer to the screen, making the rendered content visible.
Definition
metal_renderer.mm:166
yaze::gfx::MetalRenderer::~MetalRenderer
~MetalRenderer() override
Definition
metal_renderer.mm:22
yaze::gfx::MetalRenderer::UnlockTexture
void UnlockTexture(TextureHandle texture) override
Definition
metal_renderer.mm:159
yaze::gfx::MetalRenderer::GetBackendRenderer
void * GetBackendRenderer() override
Provides an escape hatch to get the underlying, concrete renderer object.
Definition
metal_renderer.mm:234
yaze::gfx::MetalRenderer::SetDrawColor
void SetDrawColor(SDL_Color color) override
Sets the color used for drawing operations (e.g., Clear).
Definition
metal_renderer.mm:230
yaze::gfx::MetalRenderer::Clear
void Clear() override
Clears the entire render target with the current draw color.
Definition
metal_renderer.mm:163
yaze::gfx::MetalRenderer::metal_view_
void * metal_view_
Definition
metal_renderer.h:36
yaze::gfx::MetalRenderer::render_target_
TextureHandle render_target_
Definition
metal_renderer.h:38
yaze::gfx::MetalRenderer::LockTexture
bool LockTexture(TextureHandle texture, SDL_Rect *rect, void **pixels, int *pitch) override
Definition
metal_renderer.mm:150
irenderer.h
yaze::gfx::TextureHandle
void * TextureHandle
An abstract handle representing a texture.
Definition
irenderer.h:27
yaze
Definition
patch_export_usage.cc:8
src
app
gfx
backend
metal_renderer.h
Generated by
1.10.0