Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reorganize directory structure and other clean-ups #246

Merged
merged 11 commits into from
Sep 25, 2023
3 changes: 0 additions & 3 deletions src/adera/SysExhaustPlume.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@
#pragma once
#include <adera/Plume.h> // for PlumeEffectData

#include <osp/Active/activetypes.h> // for ActiveEnt

#include <entt/entity/entity.hpp> // for null, null_t

namespace osp { namespace active { class ActiveScene; } }
Expand All @@ -36,7 +34,6 @@ namespace adera::active

struct ACompExhaustPlume
{
osp::active::ActiveEnt m_parentMCompRocket{entt::null};
PlumeEffectData m_effect;

float m_time{0.0f};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@
*/
#include "VehicleBuilder.h"

#include <osp/Resource/ImporterData.h>
#include <osp/Resource/resources.h>
#include <osp/logging.h>
#include <osp/core/Resources.h>
#include <osp/util/logging.h>
#include <osp/vehicles/ImporterData.h>

namespace testapp
namespace adera
{

using osp::restypes::gc_importer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,8 @@
*/
#pragma once

#include <osp/Active/parts.h>
#include <osp/Resource/resourcetypes.h>
#include <osp/types.h>
#include <osp/activescene/vehicles.h>
#include <osp/core/resourcetypes.h>
#include <osp/link/machines.h>

#include <longeron/id_management/registry_stl.hpp>
Expand All @@ -41,7 +40,7 @@
#include <optional>
#include <vector>

namespace testapp
namespace adera
{

using osp::active::PartId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@

#include <Magnum/Magnum.h>

#include <osp/logging.h>
#include <osp/util/logging.h>

// for the 0xrrggbb_rgbf and angle literals
using namespace Magnum::Math::Literals;

using testapp::SysCameraController;
using testapp::ACtxCameraController;
using adera::SysCameraController;
using adera::ACtxCameraController;

using Magnum::Rad;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,13 @@
*/
#pragma once

#include <osp/Active/basic.h>

#include <osp/UserInputHandler.h>
#include <osp/types.h>
#include <osp/activescene/basic.h>
#include <osp/core/math_types.h>
#include <osp/util/UserInputHandler.h>

#include <optional>

namespace testapp
namespace adera
{

struct ACtxCameraController
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,12 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
#include "Flat.h"
#include "flat_shader.h"

using namespace osp;
using namespace osp::active;
using namespace osp::shader;
using namespace osp::draw;

void shader::draw_ent_flat(
void adera::shader::draw_ent_flat(
DrawEnt ent,
ViewProjMatrix const& viewProj,
EntityToDraw::UserData_t userData) noexcept
Expand Down
62 changes: 30 additions & 32 deletions src/osp/Shaders/Flat.h → src/adera/drawing_gl/flat_shader.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,11 @@
*/
#pragma once


#include <osp/Active/opengl/SysRenderGL.h>
#include <osp/drawing_gl/rendergl.h>

#include <Magnum/Shaders/FlatGL.h>

namespace osp::shader
namespace adera::shader
{

using FlatGL3D = Magnum::Shaders::FlatGL3D;
Expand All @@ -40,19 +39,19 @@ struct ACtxDrawFlat
FlatGL3D shaderUntextured {Corrade::NoCreate};
FlatGL3D shaderDiffuse {Corrade::NoCreate};

active::DrawTransforms_t *pDrawTf {nullptr};
active::DrawEntColors_t *pColor {nullptr};
active::TexGlEntStorage_t *pDiffuseTexId {nullptr};
active::MeshGlEntStorage_t *pMeshId {nullptr};
osp::draw::DrawTransforms_t *pDrawTf {nullptr};
osp::draw::DrawEntColors_t *pColor {nullptr};
osp::draw::TexGlEntStorage_t *pDiffuseTexId {nullptr};
osp::draw::MeshGlEntStorage_t *pMeshId {nullptr};

active::TexGlStorage_t *pTexGl {nullptr};
active::MeshGlStorage_t *pMeshGl {nullptr};
osp::draw::TexGlStorage_t *pTexGl {nullptr};
osp::draw::MeshGlStorage_t *pMeshGl {nullptr};

active::MaterialId materialId { lgrn::id_null<active::MaterialId>() };
osp::draw::MaterialId materialId { lgrn::id_null<osp::draw::MaterialId>() };

constexpr void assign_pointers(active::ACtxSceneRender& rScnRender,
active::ACtxSceneRenderGL& rScnRenderGl,
active::RenderGL& rRenderGl) noexcept
constexpr void assign_pointers(osp::draw::ACtxSceneRender& rScnRender,
osp::draw::ACtxSceneRenderGL& rScnRenderGl,
osp::draw::RenderGL& rRenderGl) noexcept
{
pDrawTf = &rScnRender .m_drawTransform;
pColor = &rScnRender .m_color;
Expand All @@ -64,29 +63,28 @@ struct ACtxDrawFlat
};

void draw_ent_flat(
active::DrawEnt ent,
active::ViewProjMatrix const& viewProj,
active::EntityToDraw::UserData_t userData) noexcept;
osp::draw::DrawEnt ent,
osp::draw::ViewProjMatrix const& viewProj,
osp::draw::EntityToDraw::UserData_t userData) noexcept;

struct ArgsForSyncDrawEntFlat
{
active::DrawEntSet_t const& hasMaterial;
active::RenderGroup::Storage_t *const pStorageOpaque;
active::RenderGroup::Storage_t *const pStorageTransparent;
active::DrawEntSet_t const& opaque;
active::DrawEntSet_t const& transparent;
active::TexGlEntStorage_t const& diffuse;
ACtxDrawFlat& rData;
osp::draw::DrawEntSet_t const& hasMaterial;
osp::draw::RenderGroup::DrawEnts_t *const pStorageOpaque;
osp::draw::RenderGroup::DrawEnts_t *const pStorageTransparent;
osp::draw::DrawEntSet_t const& opaque;
osp::draw::DrawEntSet_t const& transparent;
osp::draw::TexGlEntStorage_t const& diffuse;
ACtxDrawFlat& rData;
};

inline void sync_drawent_flat(active::DrawEnt ent, ArgsForSyncDrawEntFlat const args)
inline void sync_drawent_flat(osp::draw::DrawEnt ent, ArgsForSyncDrawEntFlat const args)
{
using namespace osp::active;

auto const entInt = std::size_t(ent);

bool const hasMaterial = args.hasMaterial.test(entInt);
bool const hasTexture = (args.diffuse.size() > std::size_t(ent)) && (args.diffuse[ent].m_glId != lgrn::id_null<TexGlId>());
bool const hasTexture = (args.diffuse.size() > std::size_t(ent))
&& (args.diffuse[ent].m_glId != lgrn::id_null<osp::draw::TexGlId>());

FlatGL3D *pShader = hasTexture
? &args.rData.shaderDiffuse
Expand All @@ -95,19 +93,19 @@ inline void sync_drawent_flat(active::DrawEnt ent, ArgsForSyncDrawEntFlat const
if (args.pStorageTransparent != nullptr)
{
auto value = (hasMaterial && args.transparent.test(entInt))
? std::make_optional(EntityToDraw{&draw_ent_flat, {&args.rData, pShader}})
? std::make_optional(osp::draw::EntityToDraw{&draw_ent_flat, {&args.rData, pShader}})
: std::nullopt;

storage_assign(*args.pStorageTransparent, ent, std::move(value));
osp::storage_assign(*args.pStorageTransparent, ent, std::move(value));
}

if (args.pStorageOpaque != nullptr)
{
auto value = (hasMaterial && args.opaque.test(entInt))
? std::make_optional(EntityToDraw{&draw_ent_flat, {&args.rData, pShader}})
? std::make_optional(osp::draw::EntityToDraw{&draw_ent_flat, {&args.rData, pShader}})
: std::nullopt;

storage_assign(*args.pStorageOpaque, ent, std::move(value));
osp::storage_assign(*args.pStorageOpaque, ent, std::move(value));
}
}

Expand All @@ -117,7 +115,7 @@ void sync_drawent_flat(
ITB_T const& last,
ArgsForSyncDrawEntFlat const args)
{
std::for_each(first, last, [&args] (active::DrawEnt const ent)
std::for_each(first, last, [&args] (osp::draw::DrawEnt const ent)
{
sync_drawent_flat(ent, args);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,15 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
#include "Phong.h"
#include "phong_shader.h"

// for the 0xrrggbb_rgbf and angle literals
using namespace Magnum::Math::Literals;

using namespace osp;
using namespace osp::active;
using namespace osp::shader;
using namespace osp::draw;

void shader::draw_ent_phong(
void adera::shader::draw_ent_phong(
DrawEnt ent,
ViewProjMatrix const& viewProj,
EntityToDraw::UserData_t userData) noexcept
Expand Down
62 changes: 29 additions & 33 deletions src/osp/Shaders/Phong.h → src/adera/drawing_gl/phong_shader.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,11 @@
*/
#pragma once

#include <osp/Active/opengl/SysRenderGL.h>
#include <osp/drawing_gl/rendergl.h>

#include <Magnum/Shaders/PhongGL.h>

#include <optional>

namespace osp::shader
namespace adera::shader
{

using PhongGL = Magnum::Shaders::PhongGL;
Expand All @@ -43,19 +41,19 @@ struct ACtxDrawPhong
PhongGL shaderUntextured {Corrade::NoCreate};
PhongGL shaderDiffuse {Corrade::NoCreate};

active::DrawTransforms_t *pDrawTf {nullptr};
active::DrawEntColors_t *pColor {nullptr};
active::TexGlEntStorage_t *pDiffuseTexId {nullptr};
active::MeshGlEntStorage_t *pMeshId {nullptr};
osp::draw::DrawTransforms_t *pDrawTf {nullptr};
osp::draw::DrawEntColors_t *pColor {nullptr};
osp::draw::TexGlEntStorage_t *pDiffuseTexId {nullptr};
osp::draw::MeshGlEntStorage_t *pMeshId {nullptr};

active::TexGlStorage_t *pTexGl {nullptr};
active::MeshGlStorage_t *pMeshGl {nullptr};
osp::draw::TexGlStorage_t *pTexGl {nullptr};
osp::draw::MeshGlStorage_t *pMeshGl {nullptr};

active::MaterialId materialId { lgrn::id_null<active::MaterialId>() };
osp::draw::MaterialId materialId { lgrn::id_null<osp::draw::MaterialId>() };

constexpr void assign_pointers(active::ACtxSceneRender& rScnRender,
active::ACtxSceneRenderGL& rScnRenderGl,
active::RenderGL& rRenderGl) noexcept
constexpr void assign_pointers(osp::draw::ACtxSceneRender& rScnRender,
osp::draw::ACtxSceneRenderGL& rScnRenderGl,
osp::draw::RenderGL& rRenderGl) noexcept
{
pDrawTf = &rScnRender .m_drawTransform;
pColor = &rScnRender .m_color;
Expand All @@ -67,29 +65,27 @@ struct ACtxDrawPhong
};

void draw_ent_phong(
active::DrawEnt ent,
active::ViewProjMatrix const& viewProj,
active::EntityToDraw::UserData_t userData) noexcept;
osp::draw::DrawEnt ent,
osp::draw::ViewProjMatrix const& viewProj,
osp::draw::EntityToDraw::UserData_t userData) noexcept;

struct ArgsForSyncDrawEntPhong
{
active::DrawEntSet_t const& hasMaterial;
active::RenderGroup::Storage_t *const pStorageOpaque {nullptr};
active::RenderGroup::Storage_t *const pStorageTransparent {nullptr};
active::DrawEntSet_t const& opaque;
active::DrawEntSet_t const& transparent;
active::TexGlEntStorage_t const& diffuse;
ACtxDrawPhong& rData;
osp::draw::DrawEntSet_t const& hasMaterial;
osp::draw::RenderGroup::DrawEnts_t *const pStorageOpaque;
osp::draw::RenderGroup::DrawEnts_t *const pStorageTransparent;
osp::draw::DrawEntSet_t const& opaque;
osp::draw::DrawEntSet_t const& transparent;
osp::draw::TexGlEntStorage_t const& diffuse;
ACtxDrawPhong& rData;
};

inline void sync_drawent_phong(active::DrawEnt ent, ArgsForSyncDrawEntPhong const args)
inline void sync_drawent_phong(osp::draw::DrawEnt ent, ArgsForSyncDrawEntPhong const args)
{
using namespace active;

auto const entInt = std::size_t(ent);

bool const hasMaterial = args.hasMaterial.test(entInt);
bool const hasTexture = (args.diffuse.size() > std::size_t(ent)) && (args.diffuse[ent].m_glId != lgrn::id_null<TexGlId>());
bool const hasTexture = (args.diffuse.size() > std::size_t(ent)) && (args.diffuse[ent].m_glId != lgrn::id_null<osp::draw::TexGlId>());

PhongGL *pShader = hasTexture
? &args.rData.shaderDiffuse
Expand All @@ -98,19 +94,19 @@ inline void sync_drawent_phong(active::DrawEnt ent, ArgsForSyncDrawEntPhong cons
if (args.pStorageTransparent != nullptr)
{
auto value = (hasMaterial && args.transparent.test(entInt))
? std::make_optional(EntityToDraw{&draw_ent_phong, {&args.rData, pShader}})
? std::make_optional(osp::draw::EntityToDraw{&draw_ent_phong, {&args.rData, pShader}})
: std::nullopt;

storage_assign(*args.pStorageTransparent, ent, std::move(value));
osp::storage_assign(*args.pStorageTransparent, ent, std::move(value));
}

if (args.pStorageOpaque != nullptr)
{
auto value = (hasMaterial && args.opaque.test(entInt))
? std::make_optional(EntityToDraw{&draw_ent_phong, {&args.rData, pShader}})
? std::make_optional(osp::draw::EntityToDraw{&draw_ent_phong, {&args.rData, pShader}})
: std::nullopt;

storage_assign(*args.pStorageOpaque, ent, std::move(value));
osp::storage_assign(*args.pStorageOpaque, ent, std::move(value));
}
}

Expand All @@ -120,7 +116,7 @@ void sync_drawent_phong(
ITB_T const& last,
ArgsForSyncDrawEntPhong const args)
{
std::for_each(first, last, [&args] (active::DrawEnt const ent)
std::for_each(first, last, [&args] (osp::draw::DrawEnt const ent)
{
sync_drawent_phong(ent, args);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
#include "PlumeShader.h" // IWYU pragma: associated
#include "plume_shader.h" // IWYU pragma: associated

#if 0

#include <adera/Plume.h> // for PlumeEffectData
#include <adera/SysExhaustPlume.h> // for ACompExhaustPlume
Expand Down Expand Up @@ -197,3 +199,5 @@ PlumeShader& PlumeShader::setPower(const float power)
setUniform(static_cast<Magnum::Int>(UniformPos::Power), power);
return *this;
}

#endif
Loading
Loading