diff options
Diffstat (limited to 'Src/nsv/nsvplay/vid_ddraw.h')
-rw-r--r-- | Src/nsv/nsvplay/vid_ddraw.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Src/nsv/nsvplay/vid_ddraw.h b/Src/nsv/nsvplay/vid_ddraw.h new file mode 100644 index 00000000..0feea9f5 --- /dev/null +++ b/Src/nsv/nsvplay/vid_ddraw.h @@ -0,0 +1,63 @@ +#ifndef _VIDEO_DDRAW_H +#define _VIDEO_DDRAW_H + +#include <ddraw.h> +#include "video.h" + +class SubsItem; + +class DDrawVideoOutput : public VideoOutputChild { +public: + DDrawVideoOutput(); + virtual ~DDrawVideoOutput(); + + int create(VideoOutput *parent, int w, int h, unsigned int type, int flipit, double aspectratio); //return 1 if ok + int needChange() { return needchange; } + + int onPaint(HWND hwnd, HDC hdc); + void displayFrame(const char *buf, int size, int time); + + void goFullScreen(); + void removeFullScreen(); + + void timerCallback(); + + void setPalette(RGBQUAD *pal) { m_palette=pal; } + + int showOSD(); + void hideOSD(); + + void drawSubtitle(SubsItem *item); + void resetSubtitle(); + +private: + int width, height, flip; + int needchange; + unsigned int type; + VideoOutput *m_parent; + LPDIRECTDRAW lpDD; + LPDIRECTDRAWSURFACE lpddsOverlay, lpddsPrimary, lpddsSTTemp; + int sttmp_w, sttmp_h; + DDCAPS capsDrv; + unsigned int uDestSizeAlign, uSrcSizeAlign; + DWORD dwUpdateFlags; + RECT rs,rd; + RECT lastresizerect; + + bool initing; + int is_fullscreen; + + LPDIRECTDRAWCLIPPER lpddsClipper; + DDPIXELFORMAT m_ddpf; + int m_depth; + RGBQUAD *m_palette; + + HFONT subFont; + RECT subRect; + SubsItem *m_lastsubtitle; + int m_sub_needremeasure; + RECT winRect; + int m_fontsize; +}; + +#endif |