aboutsummaryrefslogtreecommitdiff
path: root/Src/tataki/canvas/mac/bltcanvas.h
blob: e1005dc85433b7b416b93985261b7974f055495a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef _BLTCANVAS_H
#define _BLTCANVAS_H

#include <tataki/export.h>
#include "canvas.h"

class TATAKIAPI BltCanvas : public Canvas 
{
public:
  BltCanvas();
  BltCanvas(int width, int height, OSWINDOWHANDLE wnd);
  
  // override blit and stretchblit so we can use CGContextDrawLayerAtPoint/CGContextDrawLayerInRect
  virtual void blit(int srcx, int srcy, Canvas *dest, int dstx, int dsty, int dstw, int dsth);
	void blitToRect(api_canvas *canvas, RECT *src, RECT *dst, int alpha = 255);

  virtual void stretchblit(int srcx, int srcy, int srcw, int srch, Canvas *dest, int dstx, int dsty, int dstw, int dsth);
  void stretchToRectAlpha(api_canvas *canvas, RECT *src, RECT *dst, int alpha = 255);
    
	void DestructiveResize(int w, int h, int nb_bpp = 32); // resizes the bitmap, destroying the contents
  void fillBits(ARGB32 color); 

protected:
  CGLayerRef layer;
};

#endif