diff --git a/CMakeLists.txt b/CMakeLists.txt index d76f19c..11b2e54 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ option(COMPILE_SERVER "Compile the RBXNU Server" ON) option(COMPILE_STUDIO "Compile the RBXNU Studio" ON) find_package(Boost REQUIRED) +find_package(cglm REQUIRED CONFIG) add_library(engine STATIC src/engine/app/gui/Adorn.cpp @@ -26,10 +27,11 @@ add_library(engine STATIC src/include/engine/app/Name.hpp src/engine/network/Guid.cpp src/include/engine/network/Guid.hpp + src/include/engine/rendering/TextureProxyBase.hpp ) 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) project(glad) @@ -41,13 +43,14 @@ if(COMPILE_PLAYER OR COMPILE_STUDIO) target_include_directories(glad PUBLIC glad/include) project(qt_common) 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 cglm glad) + set(QT6_LIBRARIES_INCL Qt6::Core Qt6::Gui Qt6::Widgets Qt6::OpenGLWidgets glad) qt_standard_project_setup() qt_add_library(qt_common STATIC src/client/common/RBXNUGraphicsWidget.cpp 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) endif() @@ -82,4 +85,4 @@ if(COMPILE_STUDIO) ${CMAKE_BINARY_DIR}/studio_rsc.h ) target_link_libraries(studio PRIVATE qt_common engine) -endif() +endif() \ No newline at end of file diff --git a/src/client/common/Adorn.cpp b/src/client/common/Adorn.cpp new file mode 100644 index 0000000..ee824f6 --- /dev/null +++ b/src/client/common/Adorn.cpp @@ -0,0 +1,6 @@ +#include + +GL::Adorn::Adorn() +{ + +} \ No newline at end of file diff --git a/src/client/common/RBXNUGraphicsWidget.cpp b/src/client/common/RBXNUGraphicsWidget.cpp index b4093cc..1ae221c 100644 --- a/src/client/common/RBXNUGraphicsWidget.cpp +++ b/src/client/common/RBXNUGraphicsWidget.cpp @@ -2,6 +2,7 @@ RBXNUGraphicsWidget::RBXNUGraphicsWidget(QWidget* parent) : QOpenGLWidget(parent) { + gl_adorn = new GL::Adorn(); } void RBXNUGraphicsWidget::initializeGL() diff --git a/src/include/client/common/Adorn.hpp b/src/include/client/common/Adorn.hpp new file mode 100644 index 0000000..b177cc8 --- /dev/null +++ b/src/include/client/common/Adorn.hpp @@ -0,0 +1,15 @@ +#include +#pragma once + +// TODO: add G3D + +namespace GL +{ + // 2d rendering api + class Adorn : public RBX::Adorn + { + public: + Adorn(); + + }; +} \ No newline at end of file diff --git a/src/include/client/common/RBXNUGraphicsWidget.hpp b/src/include/client/common/RBXNUGraphicsWidget.hpp index 9bab88c..6a64f33 100644 --- a/src/include/client/common/RBXNUGraphicsWidget.hpp +++ b/src/include/client/common/RBXNUGraphicsWidget.hpp @@ -3,6 +3,7 @@ #include #include #include +#include class RBXNUGraphicsWidget : public QOpenGLWidget { @@ -12,6 +13,8 @@ public: RBXNUGraphicsWidget(QWidget* parent = nullptr); double delta_time; + + GL::Adorn* gl_adorn; protected: virtual void paintGL(); virtual void initializeGL(); diff --git a/src/include/client/common/RenderContext.hpp b/src/include/client/common/RenderContext.hpp new file mode 100644 index 0000000..b5c58f9 --- /dev/null +++ b/src/include/client/common/RenderContext.hpp @@ -0,0 +1,9 @@ +#include + +namespace GL +{ + struct RenderContext + { + + }; +} \ No newline at end of file diff --git a/src/include/engine/app/gui/.gitkeep b/src/include/engine/app/gui/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/include/engine/app/gui/Adorn.hpp b/src/include/engine/app/gui/Adorn.hpp index 3f1eb01..e3cdc1c 100644 --- a/src/include/engine/app/gui/Adorn.hpp +++ b/src/include/engine/app/gui/Adorn.hpp @@ -1,5 +1,9 @@ #pragma once +#include +#include +#include + // TODO: add G3D namespace RBX @@ -7,46 +11,7 @@ namespace RBX // 2d rendering api class Adorn { - // weird mystery classes - 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 *result, std::string *filename) {}; - virtual void getViewport(G3D::Rect2d *result) {]}; - virtual int getWidth() {}; - virtual int getHeight() {}; - virtual void setTexture(int id, G3D::ReferenceCountedPointer texture) {}; - virtual void getTextureSize(G3D::Rect2d *result, G3D::ReferenceCountedPointer 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) {}; + public: + }; } \ No newline at end of file diff --git a/src/include/engine/app/humanoid/.gitkeep b/src/include/engine/app/humanoid/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/include/engine/app/v8/tree/.gitkeep b/src/include/engine/app/v8/tree/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/include/engine/app/v8/world/.gitkeep b/src/include/engine/app/v8/world/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/include/engine/network/.gitkeep b/src/include/engine/network/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/include/engine/rendering/TextureProxyBase.hpp b/src/include/engine/rendering/TextureProxyBase.hpp new file mode 100644 index 0000000..ec02226 --- /dev/null +++ b/src/include/engine/rendering/TextureProxyBase.hpp @@ -0,0 +1,9 @@ +#pragma once + +namespace RBX +{ + class TextureProxyBase + { + + }; +} \ No newline at end of file diff --git a/src/include/engine/rendering/g3d/.gitkeep b/src/include/engine/rendering/g3d/.gitkeep deleted file mode 100644 index e69de29..0000000