SDL_sysyuv.h revision 9682c8870b8ff5e4ac2e4c70b759f791c6f38c1f
11510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org/*
21510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    SDL - Simple DirectMedia Layer
31510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    Copyright (C) 1997-2012 Sam Lantinga
41510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
51510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    This library is free software; you can redistribute it and/or
61510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    modify it under the terms of the GNU Lesser General Public
71510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    License as published by the Free Software Foundation; either
81510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    version 2.1 of the License, or (at your option) any later version.
91510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
101510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    This library is distributed in the hope that it will be useful,
111510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    but WITHOUT ANY WARRANTY; without even the implied warranty of
121510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
131510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    Lesser General Public License for more details.
141510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
151510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    You should have received a copy of the GNU Lesser General Public
161510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    License along with this library; if not, write to the Free Software
171510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
181510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
191510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    Sam Lantinga
201510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    slouken@libsdl.org
211510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org*/
221510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org#include "SDL_config.h"
231510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
241510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
251510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org#ifndef __SDL_SYS_YUV_H__
261510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org#define __SDL_SYS_YUV_H__
271510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
282904d1a42292be3056c2dd3f98822f8e1470fa72machenbach@chromium.org/* This is the BeOS implementation of YUV video overlays */
292904d1a42292be3056c2dd3f98822f8e1470fa72machenbach@chromium.org
301510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org#include "SDL_video.h"
311510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org#include "SDL_lowvideo.h"
321510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
331510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgextern "C" {
341510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
351510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgstruct private_yuvhwdata
361510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org{
371510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org/*  FRAMEDATA* CurrentFrameData;
381510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    FRAMEDATA* FrameData0;
391510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    FRAMEDATA* FrameData1;
401510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    PgScalerProps_t   props;
411510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    PgScalerCaps_t    caps;
421510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    PgVideoChannel_t* channel;
431510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    PhArea_t CurrentViewPort;
441510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    PhPoint_t CurrentWindowPos;
451510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    long format;
461510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    int scaler_on;
471510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    int current;
481510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    long YStride;
491510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    long VStride;
501510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    long UStride;
511510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    int ischromakey;
521510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    long chromakey;
531510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    int forcedredraw;
541510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    unsigned long State;
551510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    long flags;
561510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org*/
571510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org	SDL_Surface *display;
581510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org	BView *bview;
591510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org	bool first_display;
601510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org	BBitmap *bbitmap;
611510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    int locked;
621510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org};
631510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
641510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgextern BBitmap * BE_GetOverlayBitmap(BRect bounds, color_space cs);
651510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgextern SDL_Overlay* BE_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, SDL_Surface* display);
661510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgextern int BE_LockYUVOverlay(_THIS, SDL_Overlay* overlay);
671510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgextern void BE_UnlockYUVOverlay(_THIS, SDL_Overlay* overlay);
681510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgextern int BE_DisplayYUVOverlay(_THIS, SDL_Overlay* overlay, SDL_Rect* src, SDL_Rect* dst);
691510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgextern void BE_FreeYUVOverlay(_THIS, SDL_Overlay* overlay);
701510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
711510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org};
721510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
731510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org#endif /* __SDL_PH_YUV_H__ */
741510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org