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
63c52052
Commit
63c52052
authored
Jul 13, 2011
by
Nathan Heisey
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed video compile(?)
parent
9a7e7f87
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
120 additions
and
19 deletions
+120
-19
configure.in
configure.in
+1
-0
SDL_BApp.h
src/main/beos/SDL_BApp.h
+94
-14
SDL_BeApp.cc
src/main/beos/SDL_BeApp.cc
+4
-4
SDL_bopengl.cc
src/video/bwindow/SDL_bopengl.cc
+7
-1
SDL_bopengl.h
src/video/bwindow/SDL_bopengl.h
+14
-0
No files found.
configure.in
View file @
63c52052
...
@@ -1238,6 +1238,7 @@ CheckBWINDOW()
...
@@ -1238,6 +1238,7 @@ CheckBWINDOW()
{
{
if test x$enable_video = xyes; then
if test x$enable_video = xyes; then
AC_DEFINE(SDL_VIDEO_DRIVER_BWINDOW, 1, [ ])
AC_DEFINE(SDL_VIDEO_DRIVER_BWINDOW, 1, [ ])
# SOURCES="$SOURCES $srcdir/src/video/bwindow/*.cc" .cc sources have been removed
SOURCES="$SOURCES $srcdir/src/video/bwindow/*.cc"
SOURCES="$SOURCES $srcdir/src/video/bwindow/*.cc"
have_video=yes
have_video=yes
fi
fi
...
...
src/main/beos/SDL_BApp.h
View file @
63c52052
...
@@ -33,10 +33,13 @@ extern "C" {
...
@@ -33,10 +33,13 @@ extern "C" {
#ifdef __cplusplus
#ifdef __cplusplus
}
}
#include <vector>
/* Vector should only be included if we use a C++
compiler */
#endif
#endif
#include <vector>
/* Forward declarations */
/* Forward declarations */
...
@@ -71,6 +74,17 @@ class SDL_BApp : public BApplication {
...
@@ -71,6 +74,17 @@ class SDL_BApp : public BApplication {
public
:
public
:
SDL_BApp
(
const
char
*
signature
)
:
SDL_BApp
(
const
char
*
signature
)
:
BApplication
(
signature
)
{
BApplication
(
signature
)
{
#ifndef __cplusplus
/* Set vector imitation variables */
_ResizeArray
();
_size
=
0
;
_length
=
0
;
#endif
}
virtual
~
SDL_BApp
()
{
#ifndef __cplusplus
SDL_free
(
window_map
);
#endif
}
}
/* Event-handling functions */
/* Event-handling functions */
virtual
void
MessageReceived
(
BMessage
*
message
)
{
virtual
void
MessageReceived
(
BMessage
*
message
)
{
...
@@ -145,20 +159,22 @@ public:
...
@@ -145,20 +159,22 @@ public:
/* Window creation/destruction methods */
/* Window creation/destruction methods */
int32
GetID
(
SDL_Window
*
win
)
{
int32
GetID
(
SDL_Window
*
win
)
{
int32
i
;
int32
i
;
for
(
i
=
0
;
i
<
window_map
.
size
();
++
i
)
{
for
(
i
=
0
;
i
<
_GetNumWindowSlots
();
++
i
)
{
if
(
window_map
[
i
]
==
NULL
)
{
if
(
_GetSDLWindow
(
i
)
==
NULL
)
{
window_map
[
i
]
=
win
;
_SetSDLWindow
(
win
,
i
)
;
return
i
;
return
i
;
}
}
}
}
/* Expand the vector if all slots are full */
/* Expand the vector if all slots are full */
if
(
i
==
window_map
.
size
()
)
{
if
(
i
==
_GetNumWindowSlots
()
)
{
window_map
.
push_back
(
win
);
_PushBackWindow
(
win
);
return
i
;
return
i
;
}
}
}
}
/* FIXME: Bad coding practice, but I can't include SDL_BWin.h here. Is
there another way to do this? */
void
ClearID
(
SDL_BWin
*
bwin
);
/* Defined in SDL_BeApp.cc */
void
ClearID
(
SDL_BWin
*
bwin
);
/* Defined in SDL_BeApp.cc */
private
:
private
:
...
@@ -171,7 +187,7 @@ private:
...
@@ -171,7 +187,7 @@ private:
)
{
)
{
return
;
return
;
}
}
win
=
window_map
[
winID
]
;
win
=
_GetSDLWindow
(
winID
)
;
SDL_SendWindowEvent
(
win
,
sdlEventType
,
0
,
0
);
SDL_SendWindowEvent
(
win
,
sdlEventType
,
0
,
0
);
}
}
...
@@ -186,7 +202,7 @@ private:
...
@@ -186,7 +202,7 @@ private:
)
{
)
{
return
;
return
;
}
}
win
=
window_map
[
winID
]
;
win
=
_GetSDLWindow
(
winID
)
;
SDL_SendMouseMotion
(
win
,
0
,
dx
,
dy
);
SDL_SendMouseMotion
(
win
,
0
,
dx
,
dy
);
}
}
...
@@ -201,7 +217,7 @@ private:
...
@@ -201,7 +217,7 @@ private:
)
{
)
{
return
;
return
;
}
}
win
=
window_map
[
winID
]
;
win
=
_GetSDLWindow
(
winID
)
;
SDL_SendMouseButton
(
win
,
state
,
button
);
SDL_SendMouseButton
(
win
,
state
,
button
);
}
}
...
@@ -216,7 +232,7 @@ private:
...
@@ -216,7 +232,7 @@ private:
)
{
)
{
return
;
return
;
}
}
win
=
window_map
[
winID
]
;
win
=
_GetSDLWindow
(
winID
)
;
SDL_SendMouseWheel
(
win
,
xTicks
,
yTicks
);
SDL_SendMouseWheel
(
win
,
xTicks
,
yTicks
);
}
}
...
@@ -241,7 +257,7 @@ private:
...
@@ -241,7 +257,7 @@ private:
)
{
)
{
return
;
return
;
}
}
win
=
window_map
[
winID
]
;
win
=
_GetSDLWindow
(
winID
)
;
if
(
bSetFocus
)
{
if
(
bSetFocus
)
{
SDL_SetMouseFocus
(
win
);
SDL_SetMouseFocus
(
win
);
}
else
if
(
SDL_GetMouseFocus
()
==
win
)
{
}
else
if
(
SDL_GetMouseFocus
()
==
win
)
{
...
@@ -260,7 +276,7 @@ private:
...
@@ -260,7 +276,7 @@ private:
)
{
)
{
return
;
return
;
}
}
win
=
window_map
[
winID
]
;
win
=
_GetSDLWindow
(
winID
)
;
if
(
bSetFocus
)
{
if
(
bSetFocus
)
{
SDL_SetKeyboardFocus
(
win
);
SDL_SetKeyboardFocus
(
win
);
}
else
if
(
SDL_GetKeyboardFocus
()
==
win
)
{
}
else
if
(
SDL_GetKeyboardFocus
()
==
win
)
{
...
@@ -281,7 +297,7 @@ private:
...
@@ -281,7 +297,7 @@ private:
)
{
)
{
return
;
return
;
}
}
win
=
window_map
[
winID
]
;
win
=
_GetSDLWindow
(
winID
)
;
SDL_SendWindowEvent
(
win
,
SDL_WINDOWEVENT_MOVED
,
xPos
,
yPos
);
SDL_SendWindowEvent
(
win
,
SDL_WINDOWEVENT_MOVED
,
xPos
,
yPos
);
}
}
...
@@ -297,7 +313,7 @@ private:
...
@@ -297,7 +313,7 @@ private:
)
{
)
{
return
;
return
;
}
}
win
=
window_map
[
winID
]
;
win
=
_GetSDLWindow
(
winID
)
;
SDL_SendWindowEvent
(
win
,
SDL_WINDOWEVENT_RESIZED
,
w
,
h
);
SDL_SendWindowEvent
(
win
,
SDL_WINDOWEVENT_RESIZED
,
w
,
h
);
}
}
...
@@ -305,8 +321,72 @@ private:
...
@@ -305,8 +321,72 @@ private:
return
msg
->
FindInt32
(
"window-id"
,
winID
)
==
B_OK
;
return
msg
->
FindInt32
(
"window-id"
,
winID
)
==
B_OK
;
}
}
/* Vector imitators */
SDL_Window
*
_GetSDLWindow
(
int32
winID
)
{
return
window_map
[
winID
];
}
void
_SetSDLWindow
(
SDL_Window
*
win
,
int32
winID
)
{
window_map
[
winID
]
=
win
;
}
int32
_GetNumWindowSlots
()
{
#ifdef __cplusplus
return
window_map
.
size
();
#else
return
_size
;
#endif
}
void
_PopBackWindow
()
{
#ifdef __cplusplus
window_map
.
pop_back
();
#else
--
_size
;
#endif
}
void
_PushBackWindow
(
SDL_Window
*
win
)
{
#ifdef __cplusplus
window_map
.
push_back
(
win
);
#else
/* Resize array */
if
(
_length
==
_size
)
{
_ResizeArray
();
}
window_map
[
_size
]
=
win
;
++
_size
;
#endif
}
#ifndef __cplusplus
_ResizeArray
()
{
_length
+=
4
;
/* Increase capacity by some arbitrary number */
SDL_Window
*
temp
=
(
SDL_Window
*
)
SDL_calloc
(
_length
,
sizeof
(
SDL_Window
*
));
/* Move windows from old list to new list */
int32
i
;
for
(
i
=
0
;
i
<
_size
;
++
i
)
{
temp
[
i
]
=
window_map
[
i
];
}
SDL_free
(
window_map
);
window_map
=
temp
;
}
#endif
/* Members */
/* Members */
#ifdef __cplusplus
vector
<
SDL_Window
*>
window_map
;
/* Keeps track of SDL_Windows by index-id */
vector
<
SDL_Window
*>
window_map
;
/* Keeps track of SDL_Windows by index-id */
#else
int32
_size
;
int32
_length
;
SDL_Window
*
window_map
;
#endif
};
};
#endif
#endif
src/main/beos/SDL_BeApp.cc
View file @
63c52052
...
@@ -115,10 +115,10 @@ SDL_QuitBeApp(void)
...
@@ -115,10 +115,10 @@ SDL_QuitBeApp(void)
/* SDL_BApp functions */
/* SDL_BApp functions */
void
SDL_BApp
::
ClearID
(
SDL_BWin
*
bwin
)
{
void
SDL_BApp
::
ClearID
(
SDL_BWin
*
bwin
)
{
window_map
[
bwin
->
GetID
()]
=
NULL
;
_SetSDLWindow
(
NULL
,
bwin
->
GetID
())
;
int32
i
=
window_map
.
size
()
-
1
;
int32
i
=
_GetNumWindowSlots
()
-
1
;
while
(
i
>=
0
&&
window_map
[
i
]
==
NULL
)
{
while
(
i
>=
0
&&
_GetSDLWindow
(
i
)
==
NULL
)
{
window_map
.
pop_back
();
_PopBackWindow
();
--
i
;
--
i
;
}
}
}
}
...
...
src/video/bwindow/SDL_bopengl.cc
View file @
63c52052
...
@@ -20,8 +20,10 @@
...
@@ -20,8 +20,10 @@
*/
*/
#include "SDL_bopengl.h"
#include "SDL_bopengl.h"
#include "../SDL_sysvideo.h"
#ifdef __cplusplus
extern
"C"
{
#endif
/* Passing a NULL path means load pointers from the application */
/* Passing a NULL path means load pointers from the application */
int
BE_GL_LoadLibrary
(
_THIS
,
const
char
*
path
)
int
BE_GL_LoadLibrary
(
_THIS
,
const
char
*
path
)
...
@@ -193,3 +195,7 @@ int BE_GL_MakeCurrent(_THIS)
...
@@ -193,3 +195,7 @@ int BE_GL_MakeCurrent(_THIS)
SDL_Win->SwapBuffers();
SDL_Win->SwapBuffers();
}
}
#endif
#endif
#ifdef __cplusplus
}
#endif
src/video/bwindow/SDL_bopengl.h
View file @
63c52052
...
@@ -21,7 +21,21 @@
...
@@ -21,7 +21,21 @@
#ifndef SDL_BOPENGL_H
#ifndef SDL_BOPENGL_H
#define SDL_BOPENGL_H
#define SDL_BOPENGL_H
#ifdef __cplusplus
extern
"C"
{
#endif
#include "../SDL_sysvideo.h"
extern
int
BE_GL_LoadLibrary
(
_THIS
,
const
char
*
path
);
extern
int
BE_GL_LoadLibrary
(
_THIS
,
const
char
*
path
);
extern
void
*
BE_GL_GetProcAddress
(
_THIS
,
const
char
*
proc
);
extern
void
*
BE_GL_GetProcAddress
(
_THIS
,
const
char
*
proc
);
extern
int
BE_GL_MakeCurrent
(
_THIS
);
extern
int
BE_GL_MakeCurrent
(
_THIS
);
#ifdef __cplusplus
}
#endif
#endif
#endif
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