- Add custom Metal render target creation - Implement post-processing without GPU-CPU-GPU copies - Create Metal texture extraction system - Add Metal CRT shader pipeline integration - Modify screen rendering to use Metal when available - Enable shaders by default for testing 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
23 lines
750 B
C++
23 lines
750 B
C++
#pragma once
|
|
|
|
#include <SDL3/SDL.h> // Para SDL_Texture, SDL_Window
|
|
#include <string> // Para basic_string, string
|
|
|
|
namespace shader {
|
|
bool init(SDL_Window *ventana, SDL_Texture *texturaBackBuffer, const std::string &shaderSource, const std::string &fragmentShader = "");
|
|
void render();
|
|
void cleanup();
|
|
bool isUsingOpenGL();
|
|
|
|
#ifdef __APPLE__
|
|
namespace metal {
|
|
bool initMetal(SDL_Window* window, SDL_Texture* backBuffer, const std::string& shaderFilename);
|
|
SDL_Texture* createMetalRenderTarget(SDL_Renderer* renderer, int width, int height);
|
|
void updateMetalTexture(SDL_Texture* backBuffer);
|
|
void renderMetal();
|
|
void renderWithPostProcessing(SDL_Renderer* renderer, SDL_Texture* sourceTexture);
|
|
void cleanupMetal();
|
|
}
|
|
#endif
|
|
|
|
} // namespace shader
|