// This file was generated by $generator from $template

#pragma once

#include "$prefixDevice.h"

#include <vector>

$begin_namespaces

template <>
class Object<Frame> : public DefaultObject<Frame, FrameObjectBase>
{
  std::vector<char> color;
  std::vector<float> depth;
  uint32_t size[2];
  ANARIDataType colorType;
  ANARIDataType depthType;

 public:
  Object(ANARIDevice d, ANARIObject handle);

  void commit() override;

  void *mapFrame(
      const char *, uint32_t *, uint32_t *, ANARIDataType *) override;
  void unmapFrame(const char *) override;
  void renderFrame() override;
  void discardFrame() override;
  int frameReady(ANARIWaitMask mask) override;
};

$end_namespaces
