text: #pragma once
  
  #include "../gxcanvas.h"
  
  class NullCanvas : public gxCanvas
  {
  public:
  	NullCanvas(int width, int height, int depth);
  	~NullCanvas() override;
  
  	void backup()const override;
  	void restore()const override;
  	void setModify(int n) override;
  	int getModify()const override;
  
  	bool attachZBuffer() override;
  	void releaseZBuffer() override;
  
  	bool clip(RECT* d)const override;
  	bool clip(RECT* d, RECT* s)const override;
  	void damage(const RECT& r)const override;
  
  	void flip(bool vwait) override;
  
  	//MANIPULATORS
  	void setFont(gxFont* font) override;
  	void setMask(unsigned argb) override;
  	void setColor(unsigned argb) override;
  	void setClsColor(unsigned argb) override;
  	void setOrigin(int x, int y) override;
  	void setHandle(int x, int y) override;
  	void setViewport(int x, int y, int w, int h) override;
  
  	void cls() override;
  	void plot(int x, int y) override;
  	void line(int x, int y, int x2, int y2) override;
  	void rect(int x, int y, int w, int h, bool solid) override;
  	void oval(int x, int y, int w, int h, bool solid) override;
  	void text(int x, int y, const std::string& t) override;
  	void blit(int x, int y, gxCanvas* src, int src_x, int src_y, int src_w, int src_h, bool solid) override;
  
  	bool collide(int x, int y, const gxCanvas* src, int src_x, int src_y, bool solid)const override;
  	bool rect_collide(int x, int y, int rect_x, int rect_y, int rect_w, int rect_h, bool solid)const override;
  
  	bool lock()const override;
  	void setPixel(int x, int y, unsigned argb) override;
  	void setPixelFast(int x, int y, unsigned argb) override;
  	void copyPixel(int x, int y, gxCanvas* src, int src_x, int src_y) override;
  	void copyPixelFast(int x, int y, gxCanvas* src, int src_x, int src_y) override;
  	unsigned getPixel(int x, int y)const override;
  	unsigned getPixelFast(int x, int y)const override;
  	void unlock()const override;
  
  	void setCubeMode(int mode) override;
  	void setCubeFace(int face) override;
  
  	//ACCESSORS
  	int getWidth()const override;
  	int getHeight()const override;
  	int getDepth()const override;
  	int getFlags()const override;
  	int cubeMode()const override;
  	void getOrigin(int* x, int* y)const override;
  	void getHandle(int* x, int* y)const override;
  	void getViewport(int* x, int* y, int* w, int* h)const override;
  	unsigned getMask()const override;
  	unsigned getColor()const override;
  	unsigned getClsColor()const override;
  
  private:
  	int mWidth, mHeight, mDepth;
  };