utils moved back into the core (no longer a lib)

core_refactor
Joey Pollack 4 years ago
parent 326ef05084
commit 6c43f17c27

@ -30,6 +30,15 @@ set(LUNARIUM_SRC
"src/core/types.cpp" "src/core/types.cpp"
"src/core/core_console.cpp" "src/core/core_console.cpp"
"src/core/run_mode.cpp" "src/core/run_mode.cpp"
"src/utils/stb/stb_image_write.cpp"
"src/utils/stb/stb_image.cpp"
"src/utils/args.cpp"
"src/utils/binaryFileBuffer.cpp"
"src/utils/frameCounter.cpp"
"src/utils/helpers.cpp"
"src/utils/highResTimer.cpp"
"src/utils/logger.cpp"
"src/utils/opRes.cpp"
"src/window/window.cpp" "src/window/window.cpp"
"src/graphics/opengl/glGraphics.cpp" "src/graphics/opengl/glGraphics.cpp"
"src/graphics/opengl/glText.cpp" "src/graphics/opengl/glText.cpp"
@ -101,9 +110,6 @@ add_subdirectory(src/internal_libs/gui/dearimgui)
# add gui # add gui
add_subdirectory(src/internal_libs/gui) add_subdirectory(src/internal_libs/gui)
# add utils
add_subdirectory(src/internal_libs/utils)
# add assets # add assets
add_subdirectory(src/internal_libs/assets) add_subdirectory(src/internal_libs/assets)
@ -147,7 +153,6 @@ target_link_directories(${PROJECT_NAME}
PRIVATE external/glfw/src PRIVATE external/glfw/src
PRIVATE external/glm PRIVATE external/glm
PRIVATE src/internal_libs/gui/dearimgui PRIVATE src/internal_libs/gui/dearimgui
PRIVATE src/internal_libs/utils
PRIVATE src/internal_libs/assets PRIVATE src/internal_libs/assets
PRIVATE src/run_modes/tester PRIVATE src/run_modes/tester
PRIVATE external/glad/src PRIVATE external/glad/src
@ -155,7 +160,7 @@ target_link_directories(${PROJECT_NAME}
PRIVATE external/box2d/bin PRIVATE external/box2d/bin
) )
target_link_libraries(${PROJECT_NAME} box2d glfw glad glm gui dearimgui utils assets lua_static pugixml freetype testbed game) target_link_libraries(${PROJECT_NAME} box2d glfw glad glm gui dearimgui assets lua_static pugixml freetype testbed game)
if (NOT NO_EDITOR) if (NOT NO_EDITOR)
target_link_libraries(${PROJECT_NAME} editor) target_link_libraries(${PROJECT_NAME} editor)

@ -1,9 +0,0 @@
add_library(utils stb/stb_image_write.cpp stb/stb_image.cpp args.cpp binaryFileBuffer.cpp frameCounter.cpp
helpers.cpp highResTimer.cpp logger.cpp opRes.cpp)
target_include_directories(utils
PUBLIC "${PROJECT_BINARY_DIR}"
PUBLIC ../../
PUBLIC ../../../external/glm
PUBLIC ../../../external/box2d/include
)

@ -1,92 +0,0 @@
/******************************************************************************
* File - grid.h
* Author - Joey Pollack
* Date - 2022/01/25 (y/m/d)
* Mod Date - 2022/01/25 (y/m/d)
* Description - A 2D fixed-size array of data. Size must be set when
* this container is created and can not be changed later.
* The 0, 0 position is the center of the grid (so the indices
* of a 10x10 grid go from 4, 4 to -4, -4).
******************************************************************************/
#ifndef GRID_H_
#define GRID_H_
#include <core/types.h>
namespace lunarium
{
template<typename T>
class Grid
{
public:
Grid(Sizei size);
T* operator[](Vec2i at);
T GetAt(Vec2i at);
void SetAt(Vec2i at, T value);
void SetAll(T value);
private:
struct Node
{
T Data;
};
Sizei mHalfSize;
Sizei mSize;
Node** mGrid;
};
////////////////////////////////////////////////////////////
// IMPLEMENTATION
////////////////////////////////////////////////////////////
template<typename T>
Grid<T>::Grid(Sizei size)
: mSize(size)
{
mHalfSize.Width = size.Width / 2;
mHalfSize.Height = size.Height / 2;
mGrid = new Node*[size.Width];
for (int i = 0; i < size.Width; i++)
{
mGrid[i] = new Node[size.Height];
}
}
template<typename T>
T* Grid<T>::operator[](Vec2i at)
{
return &mGrid[at.X + mHalfSize.Width][at.Y + mHalfSize.Height].Data;
}
template<typename T>
T Grid<T>::GetAt(Vec2i at)
{
return mGrid[at.X + mHalfSize.Width][at.Y + mHalfSize.Height].Data;
}
template<typename T>
void Grid<T>::SetAt(Vec2i at, T value)
{
mGrid[at.X + mHalfSize.Width][at.Y + mHalfSize.Height].Data = value;
}
template<typename T>
void Grid<T>::SetAll(T value)
{
for (int i = 0; i < mSize.Width; i++)
{
for (int j = 0; j < mSize.Height; j++)
{
mGrid[i][j].Data = value;
}
}
}
}
#endif // GRID_H_

@ -19,10 +19,9 @@
namespace lunarium { namespace game namespace lunarium { namespace game
{ {
World::World(Camera* pCam, Sizei region_size, Sizei world_size) World::World(Camera* pCam, Sizei region_size, Sizei world_size)
: mpCamera(pCam), mRegionSize(region_size), mpWorldScript(nullptr), mRegions(region_size), mWorldSize(world_size) : mpCamera(pCam), mRegionSize(region_size), mpWorldScript(nullptr), mWorldSize(world_size)
{ {
mActiveRegion = { 0, 0 }; mActiveRegion = { 0, 0 };
mRegions.SetAll(nullptr);
} }
void World::OnLoad() void World::OnLoad()
@ -61,43 +60,6 @@ namespace lunarium { namespace game
// } // }
OpRes World::SetRegion(Region* region, Vec2i at)
{
if (*mRegions[at] != nullptr)
{
return OpRes::Fail("World::SetRegion failed because a region already exists at (%n, %n)", at.X, at.Y);
}
// Validate the layers - each image needs to match the region size
for (int i = 0; i < region->mLayers.size(); i++)
{
if (region->mLayers[i]->GetWidth() != mRegionSize.Width
|| region->mLayers[i]->GetHeight() != mRegionSize.Height)
{
return OpRes::Fail("World::SetRegion failed because the region contains layers that do not match the region size");
}
}
*mRegions[at] = region;
return OpRes::OK();
}
World::Region* World::GetRegion(Vec2i at)
{
return *mRegions[at];
}
bool World::RemoveRegion(Vec2i at)
{
if (*mRegions[at] == nullptr)
{
return false;
}
*mRegions[at] = nullptr;
return true;
}
void World::SetWorldScript(Script* pScript) void World::SetWorldScript(Script* pScript)
{ {
mpWorldScript = pScript; mpWorldScript = pScript;

@ -16,7 +16,6 @@
#include <map> #include <map>
#include <core/types.h> #include <core/types.h>
#include <utils/opRes.h> #include <utils/opRes.h>
#include <utils/grid.h>
namespace lunarium namespace lunarium
{ {
@ -72,7 +71,6 @@ namespace lunarium { namespace game
lunarium::Script* mpWorldScript; lunarium::Script* mpWorldScript;
Sizei mRegionSize; // in pixels Sizei mRegionSize; // in pixels
Sizei mWorldSize; // num regions ex. 10x10 Sizei mWorldSize; // num regions ex. 10x10
Grid<Region*> mRegions;
Vec2i mActiveRegion; Vec2i mActiveRegion;

@ -19,14 +19,13 @@
namespace lunarium namespace lunarium
{ {
SimpleRenderScene::SimpleRenderScene(uint32_t logCat) SimpleRenderScene::SimpleRenderScene(uint32_t logCat)
: BaseScene(logCat), mGrid({10, 10}) : BaseScene(logCat)
{ {
} }
SimpleRenderScene::~SimpleRenderScene() SimpleRenderScene::~SimpleRenderScene()
{ {
delete *mGrid[{5, 5}];
delete mpTestImageLoad; delete mpTestImageLoad;
} }
@ -68,9 +67,6 @@ namespace lunarium
angle = 0.0f; angle = 0.0f;
box_angle = 0.0f; box_angle = 0.0f;
// Setup the grid container
*mGrid[{-2, 0}] = new GridTestObj {5, "This is grid space -2, 0"};
} }
void SimpleRenderScene::OnTick(double delta) void SimpleRenderScene::OnTick(double delta)
@ -186,8 +182,6 @@ namespace lunarium
g->DrawBox(Rectangle(400, 400, 128.0f, 128.0f), Color(0.0f, 1.0f, 0.0f, 1.0f), 2.0f, box_angle); g->DrawBox(Rectangle(400, 400, 128.0f, 128.0f), Color(0.0f, 1.0f, 0.0f, 1.0f), 2.0f, box_angle);
g->DrawString((*mGrid[{-2, 0,}])->msg.c_str(), Rectangle::MakeFromTopLeft(200.0f, 500.0f, 500.0f, 200.0f), Color(0.5f, 0.0f, 0.75f, 1.0f));
//g->DrawImage(*mpTestImageLoad, glm::vec2(0.0f, 0.0f), Color::White()); //g->DrawImage(*mpTestImageLoad, glm::vec2(0.0f, 0.0f), Color::White());
//Rectangle src = Rectangle::MakeFromTopLeft(0.0f, 0.0f, (float)mpTestImageLoad->GetWidth(), (float)mpTestImageLoad->GetHeight()); //Rectangle src = Rectangle::MakeFromTopLeft(0.0f, 0.0f, (float)mpTestImageLoad->GetWidth(), (float)mpTestImageLoad->GetHeight());
//Rectangle src = Rectangle::MakeFromTopLeft(0.0f, 0.0f, mSrcWidth, mSrcHeight); //Rectangle src = Rectangle::MakeFromTopLeft(0.0f, 0.0f, mSrcWidth, mSrcHeight);

@ -11,7 +11,6 @@
#include "baseScene.h" #include "baseScene.h"
#include <core/types.h> #include <core/types.h>
#include <utils/grid.h>
#include <string> #include <string>
namespace lunarium namespace lunarium
@ -45,8 +44,6 @@ namespace lunarium
int X; int X;
std::string msg; std::string msg;
}; };
Grid<GridTestObj*> mGrid;
}; };
} }

Loading…
Cancel
Save