init dynpip bag
This commit is contained in:
@@ -11,8 +11,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "math/vec4.hpp"
|
||||
#include "./stapip_lighting_bag.hpp"
|
||||
#include "./stapip_info_bag.hpp"
|
||||
#include "renderer/3d/pipeline/shared/bag/pipeline_lighting_bag.hpp"
|
||||
#include "renderer/3d/pipeline/shared/bag/pipeline_info_bag.hpp"
|
||||
#include "./stapip_color_bag.hpp"
|
||||
#include "./stapip_texture_bag.hpp"
|
||||
#include "renderer/core/texture/models/texture.hpp"
|
||||
@@ -22,7 +22,7 @@ namespace Tyra {
|
||||
|
||||
/**
|
||||
* @brief 3D Render data bag.
|
||||
* Supports frustum culling, clipping, lighting,
|
||||
* Supports frustum culling, full plane clipping, lighting,
|
||||
* texture and single color / many colors.
|
||||
*/
|
||||
class StaPipBag {
|
||||
@@ -31,7 +31,7 @@ class StaPipBag {
|
||||
~StaPipBag();
|
||||
|
||||
/** Mandatory. Object info. */
|
||||
StaPipInfoBag* info;
|
||||
PipelineInfoBag* info;
|
||||
|
||||
/** Mandatory. Object color(s). */
|
||||
StaPipColorBag* color;
|
||||
@@ -46,7 +46,7 @@ class StaPipBag {
|
||||
StaPipTextureBag* texture;
|
||||
|
||||
/** Optional. Object lighting. */
|
||||
StaPipLightingBag* lighting;
|
||||
PipelineLightingBag* lighting;
|
||||
|
||||
/**
|
||||
* @param maxVertCount This parameter is available in renderer API.
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/*
|
||||
# ______ ____ ___
|
||||
# | \/ ____| |___|
|
||||
# | | | \ | |
|
||||
#-----------------------------------------------------------------------
|
||||
# Copyright 2022, tyra - https://github.com/h4570/tyra
|
||||
# Licenced under Apache License 2.0
|
||||
# Sandro Sobczyński <sandro.sobczynski@gmail.com>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <draw.h>
|
||||
#include "math/m4x4.hpp"
|
||||
#include "math/vec4.hpp"
|
||||
#include "../../stapip_shading_type.hpp"
|
||||
|
||||
namespace Tyra {
|
||||
|
||||
class StaPipInfoBag {
|
||||
public:
|
||||
StaPipInfoBag();
|
||||
~StaPipInfoBag();
|
||||
|
||||
/** Mandatory. Model matrix */
|
||||
M4x4* model;
|
||||
|
||||
StaPipShadingType shadingType;
|
||||
bool blendingEnabled;
|
||||
bool antiAliasingEnabled;
|
||||
bool noClipChecks;
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
@@ -1,56 +0,0 @@
|
||||
/*
|
||||
# ______ ____ ___
|
||||
# | \/ ____| |___|
|
||||
# | | | \ | |
|
||||
#-----------------------------------------------------------------------
|
||||
# Copyright 2022, tyra - https://github.com/h4570/tyra
|
||||
# Licenced under Apache License 2.0
|
||||
# Sandro Sobczyński <sandro.sobczynski@gmail.com>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "renderer/models/color.hpp"
|
||||
#include "math/m4x4.hpp"
|
||||
#include "math/vec4.hpp"
|
||||
|
||||
namespace Tyra {
|
||||
|
||||
enum StaPipLightingBagMode { Auto, Manual };
|
||||
|
||||
class StaPipLightingBag {
|
||||
public:
|
||||
explicit StaPipLightingBag(const bool& manual = false);
|
||||
~StaPipLightingBag();
|
||||
|
||||
Vec4* normals;
|
||||
M4x4* lightMatrix;
|
||||
|
||||
void setAmbientColor(const Color& color);
|
||||
void setDirectionalLightColors(Color* colors, const u8& count);
|
||||
void setDirectionalLightDirections(Vec4* directions, const u8& count);
|
||||
void setDirectionalLightColor(const Color& color, const u8& index);
|
||||
void setDirectionalLightDirection(const Vec4& direction, const u8& index);
|
||||
|
||||
void setLightsManually(Vec4* colors, Vec4* directions);
|
||||
void disableManualMode();
|
||||
|
||||
Vec4* getLightColors() { return lightColors; }
|
||||
|
||||
Vec4* getLightDirections() { return lightDirections; }
|
||||
|
||||
void forceDeallocateColors();
|
||||
void forceDeallocateDirections();
|
||||
|
||||
private:
|
||||
void allocate();
|
||||
void deallocate();
|
||||
void forceDeallocate();
|
||||
u8 isAllocated;
|
||||
StaPipLightingBagMode mode;
|
||||
|
||||
Vec4* lightColors;
|
||||
Vec4* lightDirections;
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
@@ -46,7 +46,7 @@ class StaPipQBufferRenderer {
|
||||
|
||||
void setMaxVertCount(const u32& count);
|
||||
|
||||
void setInfo(StaPipInfoBag* bag);
|
||||
void setInfo(PipelineInfoBag* bag);
|
||||
|
||||
/** Fast render with culling */
|
||||
void cull(StaPipQBuffer* buffer);
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "./stapip_shading_type.hpp"
|
||||
#include "renderer/3d/pipeline/shared/bag/pipeline_shading_type.hpp"
|
||||
#include "./stapip_lighting_options.hpp"
|
||||
|
||||
namespace Tyra {
|
||||
@@ -20,7 +20,7 @@ class StaPipOptions {
|
||||
StaPipOptions() {}
|
||||
~StaPipOptions() {}
|
||||
|
||||
StaPipShadingType shadingType;
|
||||
PipelineShadingType shadingType;
|
||||
bool blendingEnabled;
|
||||
bool antiAliasingEnabled;
|
||||
bool noClipChecks;
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
/*
|
||||
# ______ ____ ___
|
||||
# | \/ ____| |___|
|
||||
# | | | \ | |
|
||||
#-----------------------------------------------------------------------
|
||||
# Copyright 2022, tyra - https://github.com/h4570/tyra
|
||||
# Licenced under Apache License 2.0
|
||||
# Sandro Sobczyński <sandro.sobczynski@gmail.com>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace Tyra {
|
||||
|
||||
enum StaPipShadingType {
|
||||
StaPipShadingFlat,
|
||||
StaPipShadingGouraud,
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
@@ -41,16 +41,16 @@ class StaticPipeline : public Renderer3DPipeline {
|
||||
|
||||
void addVertices(DynamicMesh* mesh, MeshMaterial* material, StaPipBag* bag,
|
||||
MeshFrame* frameFrom, MeshFrame* frameTo) const;
|
||||
StaPipInfoBag* getInfoBag(DynamicMesh* mesh, const StaPipOptions* options,
|
||||
M4x4* model) const;
|
||||
PipelineInfoBag* getInfoBag(DynamicMesh* mesh, const StaPipOptions* options,
|
||||
M4x4* model) const;
|
||||
StaPipColorBag* getColorBag(DynamicMesh* mesh, MeshMaterial* material,
|
||||
MeshFrame* frameFrom, MeshFrame* frameTo) const;
|
||||
StaPipTextureBag* getTextureBag(DynamicMesh* mesh, MeshMaterial* material,
|
||||
MeshFrame* frameFrom, MeshFrame* frameTo);
|
||||
StaPipLightingBag* getLightingBag(DynamicMesh* mesh, MeshMaterial* material,
|
||||
M4x4* model, MeshFrame* frameFrom,
|
||||
MeshFrame* frameTo,
|
||||
const StaPipOptions* options) const;
|
||||
PipelineLightingBag* getLightingBag(DynamicMesh* mesh, MeshMaterial* material,
|
||||
M4x4* model, MeshFrame* frameFrom,
|
||||
MeshFrame* frameTo,
|
||||
const StaPipOptions* options) const;
|
||||
void deallocDrawBags(StaPipBag* bag, MeshMaterial* material) const;
|
||||
|
||||
void setLightingColorsCache(StaPipLightingOptions* lightingOptions);
|
||||
|
||||
Reference in New Issue
Block a user