Drawable Renderer (#1570), Apply render pass to drawables

This commit is contained in:
Tim Sylvester
2023-05-08 08:52:05 -07:00
committed by Bart Louwers
parent 610fb7d63c
commit b052cb904e
7 changed files with 64 additions and 18 deletions

View File

@@ -13,6 +13,7 @@ namespace mbgl {
class Color;
class PaintParameters;
enum class RenderPass : uint8_t;
namespace gfx {
@@ -45,6 +46,17 @@ public:
const gfx::ShaderProgramBasePtr& getShader() const { return shader; }
void setShader(gfx::ShaderProgramBasePtr value) { shader = std::move(value); }
/// The pass on which we'll be rendered
mbgl::RenderPass getRenderPass() const { return renderPass; }
void setRenderPass(mbgl::RenderPass value) { renderPass = value; }
/// Test whether to draw this drawable in a given render pass.
/// If multiple render pass bits are set, all must be present.
bool hasRenderPass(mbgl::RenderPass value) const {
using T = std::underlying_type<mbgl::RenderPass>::type;
return (static_cast<T>(renderPass) & static_cast<T>(value)) == static_cast<T>(value);
}
/// not used for anything yet
DrawPriority getDrawPriority() const { return drawPriority; }
void setDrawPriority(DrawPriority value) { drawPriority = value; }
@@ -89,6 +101,7 @@ protected:
std::string name;
util::SimpleIdentity uniqueID;
gfx::ShaderProgramBasePtr shader;
mbgl::RenderPass renderPass;
mat4 matrix; //= matrix::identity4();
std::optional<OverscaledTileID> tileID;
DrawPriority drawPriority = 0;

View File

@@ -49,6 +49,10 @@ public:
/// Get the ID of the drawable we're currently working on, if any
util::SimpleIdentity getDrawableId();
/// The pass on which we'll be rendered
mbgl::RenderPass getRenderPass() const { return renderPass; }
void setRenderPass(mbgl::RenderPass value) { renderPass = value; }
/// The draw priority assigned to generated drawables
DrawPriority getDrawPriority() const;
void setDrawPriority(DrawPriority);
@@ -118,6 +122,7 @@ protected:
protected:
std::string name;
std::string drawableName;
mbgl::RenderPass renderPass;
DrawPriority drawPriority = 0;
int32_t layerIndex = -1;
DepthMaskType depthType = DepthMaskType::ReadOnly;