This commit is contained in:
floralrainfall 2023-07-08 00:19:46 -04:00
parent d9a9c487f5
commit 34bbcc31e8
14 changed files with 56 additions and 45 deletions

View File

@ -12,6 +12,7 @@ option(COMPILE_SERVER "Compile the RBXNU Server" ON)
option(COMPILE_STUDIO "Compile the RBXNU Studio" ON) option(COMPILE_STUDIO "Compile the RBXNU Studio" ON)
find_package(Boost REQUIRED) find_package(Boost REQUIRED)
find_package(cglm REQUIRED CONFIG)
add_library(engine STATIC add_library(engine STATIC
src/engine/app/gui/Adorn.cpp src/engine/app/gui/Adorn.cpp
@ -26,10 +27,11 @@ add_library(engine STATIC
src/include/engine/app/Name.hpp src/include/engine/app/Name.hpp
src/engine/network/Guid.cpp src/engine/network/Guid.cpp
src/include/engine/network/Guid.hpp src/include/engine/network/Guid.hpp
src/include/engine/rendering/TextureProxyBase.hpp
) )
target_include_directories(engine PUBLIC src/include ${CMAKE_BINARY_DIR}) target_include_directories(engine PUBLIC src/include ${CMAKE_BINARY_DIR})
target_link_libraries(engine PUBLIC ${BOOST_LIBRARIES}) target_link_libraries(engine PUBLIC ${BOOST_LIBRARIES} cglm)
if(COMPILE_PLAYER OR COMPILE_STUDIO) if(COMPILE_PLAYER OR COMPILE_STUDIO)
project(glad) project(glad)
@ -41,13 +43,14 @@ if(COMPILE_PLAYER OR COMPILE_STUDIO)
target_include_directories(glad PUBLIC glad/include) target_include_directories(glad PUBLIC glad/include)
project(qt_common) project(qt_common)
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets OpenGLWidgets) find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets OpenGLWidgets)
find_package(cglm REQUIRED CONFIG) set(QT6_LIBRARIES_INCL Qt6::Core Qt6::Gui Qt6::Widgets Qt6::OpenGLWidgets glad)
set(QT6_LIBRARIES_INCL Qt6::Core Qt6::Gui Qt6::Widgets Qt6::OpenGLWidgets cglm glad)
qt_standard_project_setup() qt_standard_project_setup()
qt_add_library(qt_common STATIC qt_add_library(qt_common STATIC
src/client/common/RBXNUGraphicsWidget.cpp src/client/common/RBXNUGraphicsWidget.cpp
src/include/client/common/RBXNUGraphicsWidget.hpp src/include/client/common/RBXNUGraphicsWidget.hpp
src/client/common/Adorn.cpp
src/include/client/common/Adorn.hpp
) )
target_link_libraries(qt_common PUBLIC ${QT6_LIBRARIES_INCL} engine) target_link_libraries(qt_common PUBLIC ${QT6_LIBRARIES_INCL} engine)
endif() endif()
@ -82,4 +85,4 @@ if(COMPILE_STUDIO)
${CMAKE_BINARY_DIR}/studio_rsc.h ${CMAKE_BINARY_DIR}/studio_rsc.h
) )
target_link_libraries(studio PRIVATE qt_common engine) target_link_libraries(studio PRIVATE qt_common engine)
endif() endif()

View File

@ -0,0 +1,6 @@
#include <client/common/Adorn.hpp>
GL::Adorn::Adorn()
{
}

View File

@ -2,6 +2,7 @@
RBXNUGraphicsWidget::RBXNUGraphicsWidget(QWidget* parent) : QOpenGLWidget(parent) RBXNUGraphicsWidget::RBXNUGraphicsWidget(QWidget* parent) : QOpenGLWidget(parent)
{ {
gl_adorn = new GL::Adorn();
} }
void RBXNUGraphicsWidget::initializeGL() void RBXNUGraphicsWidget::initializeGL()

View File

@ -0,0 +1,15 @@
#include <engine/app/gui/Adorn.hpp>
#pragma once
// TODO: add G3D
namespace GL
{
// 2d rendering api
class Adorn : public RBX::Adorn
{
public:
Adorn();
};
}

View File

@ -3,6 +3,7 @@
#include <glad/glad.h> #include <glad/glad.h>
#include <QOpenGLWidget> #include <QOpenGLWidget>
#include <QElapsedTimer> #include <QElapsedTimer>
#include <client/common/Adorn.hpp>
class RBXNUGraphicsWidget : public QOpenGLWidget class RBXNUGraphicsWidget : public QOpenGLWidget
{ {
@ -12,6 +13,8 @@ public:
RBXNUGraphicsWidget(QWidget* parent = nullptr); RBXNUGraphicsWidget(QWidget* parent = nullptr);
double delta_time; double delta_time;
GL::Adorn* gl_adorn;
protected: protected:
virtual void paintGL(); virtual void paintGL();
virtual void initializeGL(); virtual void initializeGL();

View File

@ -0,0 +1,9 @@
#include <cglm/cglm.h>
namespace GL
{
struct RenderContext
{
};
}

View File

@ -1,5 +1,9 @@
#pragma once #pragma once
#include <engine/rendering/TextureProxyBase.hpp>
#include <cglm/cglm.h>
#include <string>
// TODO: add G3D // TODO: add G3D
namespace RBX namespace RBX
@ -7,46 +11,7 @@ namespace RBX
// 2d rendering api // 2d rendering api
class Adorn class Adorn
{ {
// weird mystery classes public:
class XAlign
{
};
class YAlign
{
};
class Spacing
{
};
virtual void prepareRenderPass() {}; // NOT IN AdornG3D
virtual void finishRenderPass() {}; // NOT IN AdornG3D
virtual void sparkles() {}; // NOT IN AdornG3D
virtual void createTextureProxy(G3D::ReferenceCountedPointer<G3D::GFont> *result, std::string *filename) {};
virtual void getViewport(G3D::Rect2d *result) {]};
virtual int getWidth() {};
virtual int getHeight() {};
virtual void setTexture(int id, G3D::ReferenceCountedPointer<RBX::TextureProxyBase> texture) {};
virtual void getTextureSize(G3D::Rect2d *result, G3D::ReferenceCountedPointer<RBX::TextureProxyBase> texture) {};
virtual void line2d(G3D::Vector2 *p0, G3D::Vector2 *p1, G3D::Color4 *color) {};
virtual void outlineRect2d(G3D::Rect2d *rect, float thick, G3D::Color4 *color) {};
virtual void rect2d(G3D::Rect2d *rect, G3D::Color4 *color) {};
virtual void get2DStringBounds(G3D::Vector2 *result, std::string *s, long double size, RBX::Adorn::Spacing spacing) {};
virtual void drawFont2D(G3D::Vector2 *result, std::string *s, G3D::Vector2 *po2d, long double size, G3D::Color4 *color, G3D::color4 *outline, RBX::Adorn::XAlign xalign, RBX::Adorn::YAlign yalign, RBX::Adorn::Spacing spacing) {};
virtual void setObjectToWorldMatrix(G3D::CoordinateFrame *c) {};
virtual void setColor(G3D::Color4 *color) {};
virtual void box(G3D::AABox *box, G3D::Color4 *solidColor, G3D::Color4 *wireColor) {};
virtual void sphere(G3D::sphere* sphere, G3D::Color4 *solidColor, G3D::Color4 *wireColor) {};
virtual void explosion(G3D::Sphere* sphere, G3D::Color4 *solidColor, G3D::Color4 *wireColor) {};
virtual void cylinderAlongX(float radius, float length, G3D::Color4 *solidColor, G3D::Color4 *wireColor) {};
virtual void ray(G3D::Ray* ray, G3D::Color4 *color, float scale) {};
virtual void lineSegment(G3D::LineSegment *lineSegment, G3D::Color4 *color, float scale) {};
virtual void axes(G3D::Color4 *xColor, G3D::Color4 *yColor, G3D::Color4 *zColor, float scale) {};
virtual void quad(G3D::Vector3 *v0, G3D::Vector3 *v1, G3D::Vector3 *v2, G3D::Vector3 *v3, G3D::Color4 *color) {};
}; };
} }

View File

@ -0,0 +1,9 @@
#pragma once
namespace RBX
{
class TextureProxyBase
{
};
}