好的,上下文是一些序列化/反序列化代码,它将字节流解析为更容易使用的"对象"表示(反之亦然).
这是一个带有基本消息类的简化示例,然后根据"类型"标题,存在更多数据/函数,我们必须选择正确的子类来实例化:
class BaseMessage {
public:
enum Type {
MyMessageA = 0x5a,
MyMessageB = 0xa5,
};
BaseMessage(Type type) : mType(type) { }
virtual ~BaseMessage() { }
Type type() const { return mType; }
protected:
Type mType;
virtual void parse(void *data, size_t len);
};
class MyMessageA {
public:
MyMessageA() : BaseMessage(MyMessageA) { }
/* message A specific stuf ... */
protected:
virtual void parse(void *data, size_t len);
};
class MyMessageB {
public:
MyMessageB() : BaseMessage(MyMessageB) { }
/* message B specific …Run Code Online (Sandbox Code Playgroud) 我需要将浮动数据输入到计算着色器。
我看到的3种方式是:
每种技术的优缺点是什么?
我不需要过滤,我只需要访问原始浮点数据。由于SSBO和Buffer Texture为1D,这意味着如果我的数据为“ 2D”,我需要自己计算偏移量。