3
Copyright (C) 2000 Martin Vogt
5
This program is free software; you can redistribute it and/or modify
6
it under the terms of the GNU Library General Public License as published by
7
the Free Software Foundation.
9
For more information look at the file COPYRIGHT in this package
14
#include "imageDeskSDL.h"
19
ImageDeskSDL::ImageDeskSDL() {
23
imageMode=_IMAGE_NONE;
29
ImageDeskSDL::~ImageDeskSDL() {
31
cout << "SDL destry needed"<<endl;
36
int ImageDeskSDL::support() {
41
void ImageDeskSDL::init(XWindow* xWindow, YUVPicture* pic) {
42
cout << "ImageDeskSDL::init"<<endl;
43
this->surface=(SDL_Surface*)xWindow;
44
this->rect=(SDL_Rect*)pic;
47
int ImageDeskSDL::openImage(int imageMode) {
50
this->imageMode=imageMode;
51
/* Create a YV12 image (Y + V + U) */
52
cout << "CreateYUVOverlay -s"<<imageMode<<" w:"<<w<<" h:"<<h<<endl;
53
image = SDL_CreateYUVOverlay(w,h,
57
cout << "error creating image"<<endl;
60
cout << "CreateYUVOverlay -e"<<endl;
65
int ImageDeskSDL::closeImage() {
67
cout << "FreeYUVOverlay -s"<<endl;
68
SDL_FreeYUVOverlay(image);
69
// otherwise test of NULL will fail
71
cout << "FreeYUVOverlay -e"<<endl;
78
void ImageDeskSDL::ditherImage(YUVPicture* pic) {
80
int w=pic->getWidth();
81
int h=pic->getHeight();
83
SDL_LockYUVOverlay(image);
84
memcpy(*((char**)image->pixels),pic->getLuminancePtr(),size);
85
SDL_UnlockYUVOverlay(image);
90
void ImageDeskSDL::putImage(int w, int h) {
96
if (imageMode & _IMAGE_RESIZE) {
101
if (imageMode & _IMAGE_DOUBLE) {
105
SDL_DisplayYUVOverlay(image,&dest);