Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libSDL
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PocketInsanity
libSDL
Commits
461d1781
Commit
461d1781
authored
Jul 12, 2011
by
Nathan Heisey
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed 1.2 files.
parent
70ba5c81
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
0 additions
and
1661 deletions
+0
-1661
SDL_lowvideo.h
src/video/bwindow/SDL_lowvideo.h
+0
-59
SDL_sysevents.cc
src/video/bwindow/SDL_sysevents.cc
+0
-48
SDL_sysevents_c.h
src/video/bwindow/SDL_sysevents_c.h
+0
-31
SDL_sysmouse.cc
src/video/bwindow/SDL_sysmouse.cc
+0
-144
SDL_sysmouse_c.h
src/video/bwindow/SDL_sysmouse_c.h
+0
-32
SDL_sysvideo.cc
src/video/bwindow/SDL_sysvideo.cc
+0
-864
SDL_syswm.cc
src/video/bwindow/SDL_syswm.cc
+0
-54
SDL_syswm_c.h
src/video/bwindow/SDL_syswm_c.h
+0
-31
SDL_sysyuv.cc
src/video/bwindow/SDL_sysyuv.cc
+0
-321
SDL_sysyuv.h
src/video/bwindow/SDL_sysyuv.h
+0
-77
No files found.
src/video/bwindow/SDL_lowvideo.h
deleted
100644 → 0
View file @
70ba5c81
/*
Simple DirectMedia Layer
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "SDL_config.h"
#ifndef _SDL_lowvideo_h
#define _SDL_lowvideo_h
#include "SDL_BWin.h"
#include "SDL_mouse.h"
#include "../SDL_sysvideo.h"
/* Hidden "this" pointer for the video functions */
#define _THIS SDL_VideoDevice *_this
/* Private display data */
struct
SDL_PrivateVideoData
{
/* The main window */
SDL_BWin
*
SDL_Win
;
/* The fullscreen mode list */
display_mode
saved_mode
;
#define NUM_MODELISTS 4
/* 8, 16, 24, and 32 bits-per-pixel */
int
SDL_nummodes
[
NUM_MODELISTS
];
SDL_Rect
**
SDL_modelist
[
NUM_MODELISTS
];
/* A completely clear cursor */
struct
WMcursor
*
BlankCursor
;
SDL_Overlay
*
overlay
;
};
/* Old variable names */
#define SDL_Win (_this->hidden->SDL_Win)
#define saved_mode (_this->hidden->saved_mode)
#define SDL_nummodes (_this->hidden->SDL_nummodes)
#define SDL_modelist (_this->hidden->SDL_modelist)
#define SDL_BlankCursor (_this->hidden->BlankCursor)
#define current_overlay (_this->hidden->overlay)
#endif
/* _SDL_lowvideo_h */
/* vi: set ts=4 sw=4 expandtab: */
src/video/bwindow/SDL_sysevents.cc
deleted
100644 → 0
View file @
70ba5c81
/*
Simple DirectMedia Layer
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "SDL_config.h"
#include <support/UTF8.h>
#include <stdio.h>
#include <string.h>
#include "SDL_error.h"
#include "SDL_events.h"
#include "SDL_BWin.h"
#include "SDL_lowvideo.h"
extern
"C"
{
#include "../../events/SDL_sysevents.h"
#include "../../events/SDL_events_c.h"
#include "SDL_sysevents_c.h"
void
BE_PumpEvents
(
_THIS
)
{
}
void
BE_InitOSKeymap
(
_THIS
)
{
}
};
/* Extern C */
/* vi: set ts=4 sw=4 expandtab: */
src/video/bwindow/SDL_sysevents_c.h
deleted
100644 → 0
View file @
70ba5c81
/*
Simple DirectMedia Layer
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "SDL_config.h"
#include "SDL_lowvideo.h"
/* Variables and functions exported by SDL_sysevents.c to other parts
of the native video subsystem (SDL_sysvideo.c)
*/
extern
void
BE_InitOSKeymap
(
_THIS
);
extern
void
BE_PumpEvents
(
_THIS
);
/* vi: set ts=4 sw=4 expandtab: */
src/video/bwindow/SDL_sysmouse.cc
deleted
100644 → 0
View file @
70ba5c81
/*
Simple DirectMedia Layer
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "SDL_config.h"
#include <AppKit.h>
#include <GameKit.h>
#include "SDL_BWin.h"
extern
"C"
{
#include "SDL_sysmouse_c.h"
/* Convert bits to padded bytes */
#define PADDED_BITS(bits) ((bits+7)/8)
/* The implementation dependent data for the window manager cursor */
struct
WMcursor
{
char
*
bits
;
};
/* Can this be done in the BeOS? */
WMcursor
*
BE_CreateWMCursor
(
_THIS
,
Uint8
*
data
,
Uint8
*
mask
,
int
w
,
int
h
,
int
hot_x
,
int
hot_y
)
{
WMcursor
*
cursor
;
int
allowed_x
;
int
allowed_y
;
int
run
,
pad
,
i
;
char
*
cptr
;
allowed_x
=
16
;
/* BeOS limitation */
allowed_y
=
16
;
/* BeOS limitation */
if
((
w
>
allowed_x
)
||
(
h
>
allowed_y
))
{
SDL_SetError
(
"Only cursors of dimension (%dx%d) are allowed"
,
allowed_x
,
allowed_y
);
return
(
NULL
);
}
/* Allocate the cursor */
cursor
=
(
WMcursor
*
)
SDL_malloc
(
sizeof
(
WMcursor
));
if
(
cursor
==
NULL
)
{
SDL_OutOfMemory
();
return
(
NULL
);
}
cursor
->
bits
=
(
char
*
)
SDL_malloc
(
4
+
2
*
((
allowed_x
/
8
)
*
allowed_y
));
if
(
cursor
->
bits
==
NULL
)
{
SDL_free
(
cursor
);
SDL_OutOfMemory
();
return
(
NULL
);
}
cursor
->
bits
[
0
]
=
allowed_y
;
/* Size of the cursor */
cursor
->
bits
[
1
]
=
1
;
/* Bit depth of cursor */
cursor
->
bits
[
2
]
=
hot_y
;
cursor
->
bits
[
3
]
=
hot_x
;
cptr
=
&
cursor
->
bits
[
4
];
/* Pad out to the normal cursor size */
run
=
PADDED_BITS
(
w
);
pad
=
PADDED_BITS
(
allowed_x
)
-
run
;
for
(
i
=
0
;
i
<
h
;
++
i
)
{
SDL_memcpy
(
cptr
,
data
,
run
);
SDL_memset
(
cptr
+
run
,
0
,
pad
);
data
+=
run
;
cptr
+=
(
run
+
pad
);
}
for
(;
i
<
allowed_y
;
++
i
)
{
SDL_memset
(
cptr
,
0
,
run
+
pad
);
cptr
+=
(
run
+
pad
);
}
for
(
i
=
0
;
i
<
h
;
++
i
)
{
/* FIXME: The mask should be OR'd with the data to turn
inverted color pixels black, since inverted color pixels
aren't supported under BeOS.
*/
SDL_memcpy
(
cptr
,
mask
,
run
);
SDL_memset
(
cptr
+
run
,
0
,
pad
);
mask
+=
run
;
cptr
+=
(
run
+
pad
);
}
for
(;
i
<
allowed_y
;
++
i
)
{
SDL_memset
(
cptr
,
0
,
run
+
pad
);
cptr
+=
(
run
+
pad
);
}
return
(
cursor
);
}
int
BE_ShowWMCursor
(
_THIS
,
WMcursor
*
cursor
)
{
if
(
be_app
->
Lock
())
{
if
(
cursor
==
NULL
)
{
if
(
SDL_BlankCursor
!=
NULL
)
{
be_app
->
SetCursor
(
SDL_BlankCursor
->
bits
);
}
}
else
{
be_app
->
SetCursor
(
cursor
->
bits
);
}
be_app
->
Unlock
();
}
return
(
1
);
}
void
BE_FreeWMCursor
(
_THIS
,
WMcursor
*
cursor
)
{
SDL_free
(
cursor
->
bits
);
SDL_free
(
cursor
);
}
/* Implementation by Christian Bauer <cbauer@student.physik.uni-mainz.de> */
void
BE_WarpWMCursor
(
_THIS
,
Uint16
x
,
Uint16
y
)
{
BPoint
pt
(
x
,
y
);
SDL_Win
->
Lock
();
SDL_Win
->
ConvertToScreen
(
&
pt
);
SDL_Win
->
Unlock
();
set_mouse_position
((
int32
)
pt
.
x
,
(
int32
)
pt
.
y
);
}
};
/* Extern C */
/* vi: set ts=4 sw=4 expandtab: */
src/video/bwindow/SDL_sysmouse_c.h
deleted
100644 → 0
View file @
70ba5c81
/*
Simple DirectMedia Layer
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "SDL_config.h"
#include "SDL_lowvideo.h"
/* Functions to be exported */
extern
void
BE_FreeWMCursor
(
_THIS
,
WMcursor
*
cursor
);
extern
WMcursor
*
BE_CreateWMCursor
(
_THIS
,
Uint8
*
data
,
Uint8
*
mask
,
int
w
,
int
h
,
int
hot_x
,
int
hot_y
);
extern
int
BE_ShowWMCursor
(
_THIS
,
WMcursor
*
cursor
);
extern
void
BE_WarpWMCursor
(
_THIS
,
Uint16
x
,
Uint16
y
);
/* vi: set ts=4 sw=4 expandtab: */
src/video/bwindow/SDL_sysvideo.cc
deleted
100644 → 0
View file @
70ba5c81
This diff is collapsed.
Click to expand it.
src/video/bwindow/SDL_syswm.cc
deleted
100644 → 0
View file @
70ba5c81
/*
Simple DirectMedia Layer
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "SDL_config.h"
#include "SDL_BWin.h"
extern
"C"
{
#include "SDL_syswm_c.h"
#include "SDL_error.h"
void
BE_SetWMCaption
(
_THIS
,
const
char
*
title
,
const
char
*
icon
)
{
SDL_Win
->
SetTitle
(
title
);
}
int
BE_IconifyWindow
(
_THIS
)
{
SDL_Win
->
Minimize
(
true
);
}
int
BE_GetWMInfo
(
_THIS
,
SDL_SysWMinfo
*
info
)
{
if
(
info
->
version
.
major
<=
SDL_MAJOR_VERSION
)
{
return
1
;
}
else
{
SDL_SetError
(
"Application not compiled with SDL %d.%d
\n
"
,
SDL_MAJOR_VERSION
,
SDL_MINOR_VERSION
);
return
-
1
;
}
}
};
/* Extern C */
/* vi: set ts=4 sw=4 expandtab: */
src/video/bwindow/SDL_syswm_c.h
deleted
100644 → 0
View file @
70ba5c81
/*
Simple DirectMedia Layer
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "SDL_config.h"
#include "SDL_syswm.h"
#include "SDL_lowvideo.h"
/* Functions to be exported */
extern
void
BE_SetWMCaption
(
_THIS
,
const
char
*
title
,
const
char
*
icon
);
extern
int
BE_IconifyWindow
(
_THIS
);
extern
int
BE_GetWMInfo
(
_THIS
,
SDL_SysWMinfo
*
info
);
/* vi: set ts=4 sw=4 expandtab: */
src/video/bwindow/SDL_sysyuv.cc
deleted
100644 → 0
View file @
70ba5c81
/*
Simple DirectMedia Layer
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "SDL_config.h"
/* This is the BeOS version of SDL YUV video overlays */
#include "SDL_video.h"
#include "SDL_sysyuv.h"
#include "../SDL_yuvfuncs.h"
extern
"C"
{
/* The functions used to manipulate software video overlays */
static
struct
private_yuvhwfuncs
be_yuvfuncs
=
{
BE_LockYUVOverlay
,
BE_UnlockYUVOverlay
,
BE_DisplayYUVOverlay
,
BE_FreeYUVOverlay
};
BBitmap
*
BE_GetOverlayBitmap
(
BRect
bounds
,
color_space
cs
)
{
BBitmap
*
bbitmap
;
bbitmap
=
new
BBitmap
(
bounds
,
B_BITMAP_WILL_OVERLAY
,
cs
);
if
(
!
bbitmap
||
bbitmap
->
InitCheck
()
!=
B_OK
)
{
delete
bbitmap
;
return
0
;
}
overlay_restrictions
r
;
bbitmap
->
GetOverlayRestrictions
(
&
r
);
uint32
width
=
bounds
.
IntegerWidth
()
+
1
;
uint32
height
=
bounds
.
IntegerHeight
()
+
1
;
uint32
width_padding
=
0
;
uint32
height_padding
=
0
;
if
((
r
.
source
.
horizontal_alignment
!=
0
)
||
(
r
.
source
.
vertical_alignment
!=
0
))
{
delete
bbitmap
;
return
0
;
}
if
(
r
.
source
.
width_alignment
!=
0
)
{
uint32
aligned_width
=
r
.
source
.
width_alignment
+
1
;
if
(
width
%
aligned_width
>
0
)
{
width_padding
=
aligned_width
-
width
%
aligned_width
;
}
}
if
(
r
.
source
.
height_alignment
!=
0
)
{
uint32
aligned_height
=
r
.
source
.
height_alignment
+
1
;
if
(
height
%
aligned_height
>
0
)
{
fprintf
(
stderr
,
"GetOverlayBitmap failed height alignment
\n
"
);
fprintf
(
stderr
,
"- height = %lu, aligned_height = %lu
\n
"
,
height
,
aligned_height
);
delete
bbitmap
;
return
0
;
}
}
if
((
r
.
source
.
min_width
>
width
)
||
(
r
.
source
.
min_height
>
height
)
||
(
r
.
source
.
max_width
<
width
)
||
(
r
.
source
.
max_height
<
height
))
{
fprintf
(
stderr
,
"GetOverlayBitmap failed bounds tests
\n
"
);
delete
bbitmap
;
return
0
;
}
if
((
width_padding
!=
0
)
||
(
height_padding
!=
0
))
{
delete
bbitmap
;
bounds
.
Set
(
bounds
.
left
,
bounds
.
top
,
bounds
.
right
+
width_padding
,
bounds
.
bottom
+
height_padding
);
bbitmap
=
new
BBitmap
(
bounds
,
B_BITMAP_WILL_OVERLAY
,
cs
);
if
(
!
bbitmap
||
bbitmap
->
InitCheck
()
!=
B_OK
)
{
fprintf
(
stderr
,
"GetOverlayBitmap failed late
\n
"
);
delete
bbitmap
;
return
0
;
}
}
return
bbitmap
;
}
// See <GraphicsDefs.h> [btw: Cb=U, Cr=V]
// See also http://www.fourcc.org/indexyuv.htm
enum
color_space
convert_color_space
(
Uint32
format
)
{
switch
(
format
)
{
case
SDL_YV12_OVERLAY
:
return
B_YUV9
;
case
SDL_IYUV_OVERLAY
:
return
B_YUV12
;
case
SDL_YUY2_OVERLAY
:
return
B_YCbCr422
;
case
SDL_UYVY_OVERLAY
:
return
B_YUV422
;
case
SDL_YVYU_OVERLAY
:
// not supported on beos?
return
B_NO_COLOR_SPACE
;
default:
return
B_NO_COLOR_SPACE
;
}
}
// See SDL_video.h
int
count_planes
(
Uint32
format
)
{
switch
(
format
)
{
case
SDL_YV12_OVERLAY
:
case
SDL_IYUV_OVERLAY
:
return
3
;
case
SDL_YUY2_OVERLAY
:
case
SDL_UYVY_OVERLAY
:
case
SDL_YVYU_OVERLAY
:
return
1
;
default:
return
0
;
}
}
SDL_Overlay
*
BE_CreateYUVOverlay
(
_THIS
,
int
width
,
int
height
,
Uint32
format
,
SDL_Surface
*
display
)
{
SDL_Overlay
*
overlay
;
struct
private_yuvhwdata
*
hwdata
;
BBitmap
*
bbitmap
;
int
planes
;
BRect
bounds
;
color_space
cs
;
/* find the appropriate BeOS colorspace descriptor */
cs
=
convert_color_space
(
format
);
if
(
cs
==
B_NO_COLOR_SPACE
)
{
return
NULL
;
}
/* count planes */
planes
=
count_planes
(
format
);
if
(
planes
==
0
)
{
return
NULL
;
}
/* TODO: figure out planar modes, if anyone cares */
if
(
planes
==
3
)
{
return
NULL
;
}
/* Create the overlay structure */
overlay
=
(
SDL_Overlay
*
)
SDL_calloc
(
1
,
sizeof
(
SDL_Overlay
));
if
(
overlay
==
NULL
)
{
SDL_OutOfMemory
();
return
NULL
;
}
/* Fill in the basic members */
overlay
->
format
=
format
;
overlay
->
w
=
width
;
overlay
->
h
=
height
;
overlay
->
hwdata
=
NULL
;
/* Set up the YUV surface function structure */
overlay
->
hwfuncs
=
&
be_yuvfuncs
;
/* Create the pixel data and lookup tables */
hwdata
=
(
struct
private_yuvhwdata
*
)
SDL_calloc
(
1
,
sizeof
(
struct
private_yuvhwdata
));
if
(
hwdata
==
NULL
)
{
SDL_OutOfMemory
();
SDL_FreeYUVOverlay
(
overlay
);
return
NULL
;
}
overlay
->
hwdata
=
hwdata
;
overlay
->
hwdata
->
display
=
display
;
overlay
->
hwdata
->
bview
=
NULL
;
overlay
->
hwdata
->
bbitmap
=
NULL
;
overlay
->
hwdata
->
locked
=
0
;
/* Create the BBitmap framebuffer */
bounds
.
top
=
0
;
bounds
.
left
=
0
;
bounds
.
right
=
width
-
1
;
bounds
.
bottom
=
height
-
1
;
BView
*
bview
=
new
BView
(
bounds
,
"overlay"
,
B_FOLLOW_NONE
,
B_WILL_DRAW
);
if
(
!
bview
)
{
SDL_OutOfMemory
();
SDL_FreeYUVOverlay
(
overlay
);
return
NULL
;
}
overlay
->
hwdata
->
bview
=
bview
;
overlay
->
hwdata
->
first_display
=
true
;
bview
->
Hide
();
bbitmap
=
BE_GetOverlayBitmap
(
bounds
,
cs
);
if
(
!
bbitmap
)
{
overlay
->
hwdata
->
bbitmap
=
NULL
;
SDL_FreeYUVOverlay
(
overlay
);
return
NULL
;
}
overlay
->
hwdata
->
bbitmap
=
bbitmap
;
overlay
->
planes
=
planes
;
overlay
->
pitches
=
(
Uint16
*
)
SDL_calloc
(
overlay
->
planes
,
sizeof
(
Uint16
));
overlay
->
pixels
=
(
Uint8
**
)
SDL_calloc
(
overlay
->
planes
,
sizeof
(
Uint8
*
));
if
(
!
overlay
->
pitches
||
!
overlay
->
pixels
)
{
SDL_OutOfMemory
();
SDL_FreeYUVOverlay
(
overlay
);
return
(
NULL
);
}
overlay
->
pitches
[
0
]
=
bbitmap
->
BytesPerRow
();
overlay
->
pixels
[
0
]
=
(
Uint8
*
)
bbitmap
->
Bits
();
overlay
->
hw_overlay
=
1
;
if
(
SDL_Win
->
LockWithTimeout
(
1000000
)
!=
B_OK
)
{
SDL_FreeYUVOverlay
(
overlay
);
return
(
NULL
);
}
BView
*
view
=
SDL_Win
->
View
();
view
->
AddChild
(
bview
);
rgb_color
key
;
bview
->
SetViewOverlay
(
bbitmap
,
bounds
,
bview
->
Bounds
(),
&
key
,
B_FOLLOW_ALL
,
B_OVERLAY_FILTER_HORIZONTAL
|
B_OVERLAY_FILTER_VERTICAL
);
bview
->
SetViewColor
(
key
);
bview
->
Flush
();
SDL_Win
->
Unlock
();
current_overlay
=
overlay
;
return
overlay
;
}
int
BE_LockYUVOverlay
(
_THIS
,
SDL_Overlay
*
overlay
)
{
if
(
overlay
==
NULL
)
{
return
0
;
}
overlay
->
hwdata
->
locked
=
1
;
return
0
;
}
void
BE_UnlockYUVOverlay
(
_THIS
,
SDL_Overlay
*
overlay
)
{
if
(
overlay
==
NULL
)
{
return
;
}
overlay
->
hwdata
->
locked
=
0
;
}
int
BE_DisplayYUVOverlay
(
_THIS
,
SDL_Overlay
*
overlay
,
SDL_Rect
*
src
,
SDL_Rect
*
dst
)
{
if
((
overlay
==
NULL
)
||
(
overlay
->
hwdata
==
NULL
)
||
(
overlay
->
hwdata
->
bview
==
NULL
)
||
(
SDL_Win
->
View
()
==
NULL
))
{
return
-
1
;
}
if
(
SDL_Win
->
LockWithTimeout
(
50000
)
!=
B_OK
)
{
return
0
;
}
BView
*
bview
=
overlay
->
hwdata
->
bview
;
if
(
SDL_Win
->
IsFullScreen
())
{
int
left
,
top
;
SDL_Win
->
GetXYOffset
(
left
,
top
);
bview
->
MoveTo
(
left
+
dst
->
x
,
top
+
dst
->
y
);
}
else
{
bview
->
MoveTo
(
dst
->
x
,
dst
->
y
);
}
bview
->
ResizeTo
(
dst
->
w
,
dst
->
h
);
bview
->
Flush
();
if
(
overlay
->
hwdata
->
first_display
)
{
bview
->
Show
();
overlay
->
hwdata
->
first_display
=
false
;
}
SDL_Win
->
Unlock
();
return
0
;
}
void
BE_FreeYUVOverlay
(
_THIS
,
SDL_Overlay
*
overlay
)
{
if
(
overlay
==
NULL
)
{
return
;
}
if
(
overlay
->
hwdata
==
NULL
)
{
return
;
}
current_overlay
=
NULL
;
delete
overlay
->
hwdata
->
bbitmap
;
SDL_free
(
overlay
->
hwdata
);
}
};
// extern "C"
/* vi: set ts=4 sw=4 expandtab: */
src/video/bwindow/SDL_sysyuv.h
deleted
100644 → 0
View file @
70ba5c81
/*
Simple DirectMedia Layer
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "SDL_config.h"
#ifndef __SDL_SYS_YUV_H__
#define __SDL_SYS_YUV_H__
/* This is the BeOS implementation of YUV video overlays */
#include "SDL_video.h"
#include "SDL_lowvideo.h"
extern
"C"
{
struct
private_yuvhwdata
{
/* FRAMEDATA* CurrentFrameData;
FRAMEDATA* FrameData0;
FRAMEDATA* FrameData1;
PgScalerProps_t props;
PgScalerCaps_t caps;
PgVideoChannel_t* channel;
PhArea_t CurrentViewPort;
PhPoint_t CurrentWindowPos;
long format;
int scaler_on;
int current;
long YStride;
long VStride;
long UStride;
int ischromakey;
long chromakey;
int forcedredraw;
unsigned long State;
long flags;
*/
SDL_Surface
*
display
;
BView
*
bview
;
bool
first_display
;
BBitmap
*
bbitmap
;
int
locked
;
};
extern
BBitmap
*
BE_GetOverlayBitmap
(
BRect
bounds
,
color_space
cs
);
extern
SDL_Overlay
*
BE_CreateYUVOverlay
(
_THIS
,
int
width
,
int
height
,
Uint32
format
,
SDL_Surface
*
display
);
extern
int
BE_LockYUVOverlay
(
_THIS
,
SDL_Overlay
*
overlay
);
extern
void
BE_UnlockYUVOverlay
(
_THIS
,
SDL_Overlay
*
overlay
);
extern
int
BE_DisplayYUVOverlay
(
_THIS
,
SDL_Overlay
*
overlay
,
SDL_Rect
*
src
,
SDL_Rect
*
dst
);
extern
void
BE_FreeYUVOverlay
(
_THIS
,
SDL_Overlay
*
overlay
);
};
#endif
/* __SDL_PH_YUV_H__ */
/* vi: set ts=4 sw=4 expandtab: */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment