13 VertexScreen(std::vector<VertexScreenInfo>& infos,
size_t infoIndex)
67 const std::vector<VertexPath*>&
getPaths()
const
131 for (
int i = 0;i <
m_ctx->maxFrameInFlight();i++)
143 void addRectangle(uint32_t screenId, uint32_t commandOffset, uint32_t commandSize,
const Vec4& bounds);
150 void attachPass(std::string passName,std::string uploadPassName =
"")
153 if (uploadPassName.empty())
155 uploadPassName = passName +
"_VertexUpload";
189 resource->addConstBuffer(constBuffer);
198 uint32_t totalElements =
m_infos.size() * 5;
200 std::vector<float> screenData;
201 screenData.reserve(totalElements * 4);
203 for (
const auto& info :
m_infos) {
204 screenData.push_back(info.origin.x);
205 screenData.push_back(info.origin.y);
206 screenData.push_back(info.origin.z);
207 screenData.push_back(info.origin.w);
209 screenData.push_back(info.XDir.x);
210 screenData.push_back(info.XDir.y);
211 screenData.push_back(info.XDir.z);
212 screenData.push_back(info.XDir.w);
214 screenData.push_back(info.YDir.x);
215 screenData.push_back(info.YDir.y);
216 screenData.push_back(info.YDir.z);
217 screenData.push_back(info.YDir.w);
219 screenData.push_back(info.originVertexCoord.x);
220 screenData.push_back(info.originVertexCoord.y);
221 screenData.push_back(info.originVertexCoord.z);
222 screenData.push_back(info.originVertexCoord.w);
224 screenData.push_back(info.VertexCoordSize.x);
225 screenData.push_back(info.VertexCoordSize.y);
226 screenData.push_back(info.VertexCoordSize.z);
227 screenData.push_back(info.VertexCoordSize.w);
void mvpUniformLayout(ConstLayout layout)
std::map< std::string, uint32_t > m_screenIndexMap
std::vector< PassResource * > m_passResources
static constexpr PixelLayout pixelLayout
std::pair< ConstLayout, ConstElement > m_projectionMatrix
void addConstBuffer(RHI::ConstBuffer *constBuffer)
void addRectangle(uint32_t screenId, uint32_t commandOffset, uint32_t commandSize, const Vec4 &bounds)
static constexpr const char * VertexCommandBufferNameInShder
void addPath(std::string screenName, VertexPath *path)
TraditionPipelineState * m_pso
std::vector< VertexScreen > m_screens
static constexpr const char * ScreenInfoNameInShder
void clearPath(std::string screenName)
std::vector< VertexScreenInfo > m_infos
void attachPass(std::string passName, std::string uploadPassName="")
static constexpr VertexLayout vertexLayout
std::string m_uploadPassName
static constexpr ResourceLayout resourceLayout
VertexScreen & setScreen(const std::string &name)
DynamicMesh< uint32_t > * m_mesh
std::vector< float > m_commandBuffer
std::pair< ConstLayout, ConstElement > m_viewMatrix
void generatePixelShader()
void addScreen(const std::string &name)
VertexContext(Context *ctx)
void generateVertexShader()
VertexSubmitJob(VertexSubmitJobCallBack callBack)
VertexSubmitJobCallBack m_callBack
virtual void submit(RHI::CommandBuffer *cmdBuffers) override
std::function< void()> VertexSubmitJobCallBack
const std::vector< VertexPath * > & getPaths() const
VertexScreen & setVertexCoordSize(Vec2 size)
std::vector< VertexPath * > m_paths
const VertexScreenInfo & getInfo() const
VertexScreen & setOrigin(Vec3 origin)
std::vector< VertexScreenInfo > & m_infos
VertexScreen & setOriginVertexCoord(Vec2 origin)
void pushPath(VertexPath *path)
VertexScreen(std::vector< VertexScreenInfo > &infos, size_t infoIndex)
VertexScreen & setX(Vec3 dir)
VertexScreen & setY(Vec3 dir)