33 lines
846 B
C++
33 lines
846 B
C++
#pragma once
|
|
|
|
#include "ICommandUser.h"
|
|
#include "IRenderCommandNode.h"
|
|
|
|
|
|
class CommandUserBase
|
|
: public ICommandUser
|
|
{
|
|
public:
|
|
CommandUserBase();
|
|
virtual ~CommandUserBase();
|
|
|
|
virtual const std::vector<Command*>& GetCommands() const;
|
|
virtual CommandExecuteResult::Enumeration ExecuteCommand(unsigned char argCommandType, ICommandBuffer& argCurrentBuffer, uint32 argCurrentPositon) = 0;
|
|
|
|
virtual void AssignToRenderCommandNode(IRenderCommandNode& argNode);
|
|
virtual void UnassignFromRenderCommandNode(IRenderCommandNode& argNode);
|
|
|
|
virtual bool get_IsPreconditionForNextCommands() const { return false; }
|
|
|
|
virtual string8 get_UserName() const = 0;
|
|
|
|
protected:
|
|
void UnassignFromSceneNodes();
|
|
void MarkCommandsAsDirty();
|
|
|
|
std::vector<Command*> m_Commands;
|
|
|
|
private:
|
|
std::vector<IRenderCommandNode*> m_RenderCommandNodesIamAssignedTo;
|
|
};
|