2022-05-04 18:12:22 +00:00
|
|
|
#pragma once
|
|
|
|
#include <cstdint>
|
2023-05-02 16:49:53 +00:00
|
|
|
#include "UIActions.h"
|
2022-05-04 18:12:22 +00:00
|
|
|
|
|
|
|
namespace cdc {
|
|
|
|
|
|
|
|
class IRenderDrawable {
|
2022-05-10 13:02:42 +00:00
|
|
|
protected:
|
|
|
|
friend class DrawableList;
|
2023-06-18 14:52:20 +00:00
|
|
|
uint16_t typeID = 0; // 4, kDrawableTypeIDDefault
|
|
|
|
uint16_t order = 0; // 6
|
|
|
|
float sortZ = 0.0f; // 8
|
2022-05-04 18:12:22 +00:00
|
|
|
public:
|
2022-05-11 20:18:29 +00:00
|
|
|
virtual void draw(uint32_t funcSetIndex, IRenderDrawable *other) = 0;
|
|
|
|
virtual uint32_t compare(uint32_t funcSetIndex, IRenderDrawable *other) = 0;
|
2023-05-02 16:49:53 +00:00
|
|
|
virtual void buildUI(uint32_t funcSetIndex, UIActions&) {} // HACK
|
2022-05-10 13:02:42 +00:00
|
|
|
uint32_t getVtable() { return *(uint32_t*)this; }
|
2022-05-04 18:12:22 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|