Files
MapLibreParticleLab/src/mbgl/shaders/vulkan/circle.cpp
2024-10-16 18:31:15 +03:00

27 lines
1.5 KiB
C++

#include <mbgl/shaders/vulkan/circle.hpp>
#include <mbgl/shaders/shader_defines.hpp>
#include <mbgl/shaders/circle_layer_ubo.hpp>
namespace mbgl {
namespace shaders {
const std::array<UniformBlockInfo, 4> ShaderSource<BuiltIn::CircleShader, gfx::Backend::Type::Vulkan>::uniforms = {
UniformBlockInfo{true, false, sizeof(GlobalPaintParamsUBO), idGlobalPaintParamsUBO},
UniformBlockInfo{true, false, sizeof(CircleDrawableUBO), idCircleDrawableUBO},
UniformBlockInfo{true, false, sizeof(CircleInterpolateUBO), idCircleInterpolateUBO},
UniformBlockInfo{true, true, sizeof(CircleEvaluatedPropsUBO), idCircleEvaluatedPropsUBO},
};
const std::array<AttributeInfo, 8> ShaderSource<BuiltIn::CircleShader, gfx::Backend::Type::Vulkan>::attributes = {
AttributeInfo{0, gfx::AttributeDataType::Short2, idCirclePosVertexAttribute},
AttributeInfo{1, gfx::AttributeDataType::Float4, idCircleColorVertexAttribute},
AttributeInfo{2, gfx::AttributeDataType::Float2, idCircleRadiusVertexAttribute},
AttributeInfo{3, gfx::AttributeDataType::Float2, idCircleBlurVertexAttribute},
AttributeInfo{4, gfx::AttributeDataType::Float2, idCircleOpacityVertexAttribute},
AttributeInfo{5, gfx::AttributeDataType::Float4, idCircleStrokeColorVertexAttribute},
AttributeInfo{6, gfx::AttributeDataType::Float2, idCircleStrokeWidthVertexAttribute},
AttributeInfo{7, gfx::AttributeDataType::Float2, idCircleStrokeOpacityVertexAttribute},
};
} // namespace shaders
} // namespace mbgl