Rework internal module registration to happen in constructors.

This commit is contained in:
Sasha Szpakowski
2024-02-24 15:21:38 -04:00
parent c7e4dafd88
commit 1e97e09b28
73 changed files with 154 additions and 248 deletions
+3 -2
View File
@@ -180,8 +180,9 @@ Graphics::DisplayState::DisplayState()
defaultSamplerState.mipmapFilter = SamplerState::MIPMAP_FILTER_LINEAR;
}
Graphics::Graphics()
: width(0)
Graphics::Graphics(const char *name)
: Module(M_GRAPHICS, name)
, width(0)
, height(0)
, pixelWidth(0)
, pixelHeight(0)
+1 -4
View File
@@ -451,12 +451,9 @@ public:
}
};
Graphics();
Graphics(const char *name);
virtual ~Graphics();
// Implements Module.
virtual ModuleType getModuleType() const { return M_GRAPHICS; }
virtual Texture *newTexture(const Texture::Settings &settings, const Texture::Slices *data = nullptr) = 0;
Quad *newQuad(Quad::Viewport v, double sw, double sh);
-3
View File
@@ -60,9 +60,6 @@ public:
Graphics();
virtual ~Graphics();
// Implements Module.
const char *getName() const override { return "love.graphics.metal"; }
love::graphics::Texture *newTexture(const Texture::Settings &settings, const Texture::Slices *data = nullptr) override;
love::graphics::Buffer *newBuffer(const Buffer::Settings &settings, const std::vector<Buffer::DataDeclaration> &format, const void *data, size_t size, size_t arraylength) override;
+2 -1
View File
@@ -263,7 +263,8 @@ struct DefaultVertexAttributes
Graphics *Graphics::graphicsInstance = nullptr;
Graphics::Graphics()
: device(nil)
: love::graphics::Graphics("love.graphics.metal")
, device(nil)
, commandQueue(nil)
, commandBuffer(nil)
, renderEncoder(nil)
+2 -6
View File
@@ -106,7 +106,8 @@ love::graphics::Graphics *createInstance()
}
Graphics::Graphics()
: windowHasStencil(false)
: love::graphics::Graphics("love.graphics.opengl")
, windowHasStencil(false)
, mainVAO(0)
, internalBackbufferFBO(0)
, requestedBackbufferMSAA(0)
@@ -147,11 +148,6 @@ Graphics::~Graphics()
delete[] bufferMapMemory;
}
const char *Graphics::getName() const
{
return "love.graphics.opengl";
}
love::graphics::StreamBuffer *Graphics::newStreamBuffer(BufferUsage type, size_t size)
{
return CreateStreamBuffer(type, size);
-3
View File
@@ -56,9 +56,6 @@ public:
Graphics();
virtual ~Graphics();
// Implements Module.
const char *getName() const override;
love::graphics::Texture *newTexture(const Texture::Settings &settings, const Texture::Slices *data = nullptr) override;
love::graphics::Buffer *newBuffer(const Buffer::Settings &settings, const std::vector<Buffer::DataDeclaration> &format, const void *data, size_t size, size_t arraylength) override;
+1 -5
View File
@@ -60,11 +60,6 @@ static const std::vector<const char*> deviceExtensions = {
constexpr uint32_t USAGES_POLL_INTERVAL = 5000;
const char *Graphics::getName() const
{
return "love.graphics.vulkan";
}
VkDevice Graphics::getDevice() const
{
return device;
@@ -95,6 +90,7 @@ static void checkOptionalInstanceExtensions(OptionalInstanceExtensions& ext)
}
Graphics::Graphics()
: love::graphics::Graphics("love.graphics.vulkan")
{
if (SDL_Vulkan_LoadLibrary(nullptr))
throw love::Exception("could not find vulkan");
-1
View File
@@ -274,7 +274,6 @@ public:
~Graphics();
// implementation for virtual functions
const char *getName() const override;
love::graphics::Texture *newTexture(const love::graphics::Texture::Settings &settings, const love::graphics::Texture::Slices *data) override;
love::graphics::Buffer *newBuffer(const love::graphics::Buffer::Settings &settings, const std::vector<love::graphics::Buffer::DataDeclaration>& format, const void *data, size_t size, size_t arraylength) override;
graphics::GraphicsReadback *newReadbackInternal(ReadbackMethod method, love::graphics::Buffer *buffer, size_t offset, size_t size, data::ByteData *dest, size_t destoffset) override;