File: cs_41.html

package info (click to toggle)
crystalspace 0.94-20020412-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 62,276 kB
  • ctags: 52,843
  • sloc: cpp: 274,783; ansic: 6,608; perl: 6,276; objc: 3,952; asm: 2,942; python: 2,354; php: 542; pascal: 530; sh: 430; makefile: 370; awk: 193
file content (136 lines) | stat: -rw-r--r-- 6,053 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created by texi2html 1.64 -->
<!-- 
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
            Karl Berry  <karl@freefriends.org>
            Olaf Bachmann <obachman@mathematik.uni-kl.de>
            and many others.
Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
 
-->
<HTML>
<HEAD>
<TITLE>Crystal Space: BeOS Notes</TITLE>

<META NAME="description" CONTENT="Crystal Space: BeOS Notes">
<META NAME="keywords" CONTENT="Crystal Space: BeOS Notes">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="texi2html 1.64">

</HEAD>

<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">

<A NAME="SEC110"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_40.html#SEC109"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_42.html#SEC111"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_37.html#SEC105"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_38.html#SEC107"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_42.html#SEC111"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="index.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_285.html#SEC711">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<HR SIZE=1>
<H4> 2.4.6.3 Final Notes </H4>
<!--docid::SEC110::-->
<P>

This section lists future plans as well as problems or potential problems with
the BeOS port of Crystal Space.
</P><P>

<UL>
<LI>
Now that the engine supports window resizing, the BeOS 2D drivers should
also support this feature.  Also enable the "zoom" button on the window.
<P>

<LI>
Pause when not the foreground application.  Make sure that screen redraws
correctly even when paused.
<P>

<LI>
Add full-screen support for software mode.  Be careful about the resolution,
since Crystal Space can use any arbitrary window dimension.
<P>

<LI>
The various 2D graphics drivers (software, OpenGL) should all be
derived from a common class rather than being nearly identical copies of one
another.
<P>

<LI>
Technically, the software 2D drivers should be employing
double-buffering since a <EM>window-exposed</EM> event in the sub-thread which is
running the `<SAMP>BApplication</SAMP>' will draw using the `<SAMP>BBitmap</SAMP>' even though
the main thread, in which Crystal Space is running, may be in the process of
updating the bitmap.  This thread-<EM>unsafe</EM> behavior could lead to visual
anomalies.
<P>

<LI>
Not all key combinations generate <CODE>KeyDown()</CODE> and <CODE>KeyUp()</CODE> events,
yet Crystal Space applications may want to intercept them.  For instance,
MazeD expects to responds to the keystrokes <KBD><KBD>CTRL</KBD>-1</KBD>,
<KBD><KBD>CTRL</KBD>-2</KBD>, etc., yet these key combinations are not seen by the
system driver since <CODE>KeyUp()</CODE> and <CODE>KeyDown()</CODE> are never called in
the canvas view subclasses  To fix this, it should be possible to intercept
such keystrokes in <CODE>MessageReceived()</CODE> within each `<SAMP>BView</SAMP>' subclass
in the 2D driver and respond directly to the `<SAMP>B_UNMAPPED_KEY_DOWN</SAMP>' and
`<SAMP>B_UNMAPPED_KEY_UP</SAMP>' messages.
<P>

<LI>
Consider using `<SAMP>DirectWindow</SAMP>' rather than `<SAMP>DirectBitmap</SAMP>', where
supported, since `<SAMP>DirectWindow</SAMP>' puts much less load on the CPU.
Auto-detect if `<SAMP>DirectWindow</SAMP>' is available and use it if so.  Note,
though, that David Huen says this might not be worthwhile on account of the
fact that the software renderer reads from the frame buffer, and this can be a
slow operation on some hardware.
<P>

<LI>
It is possible to depress the window's close button while Crystal Space is
still initializing, however the close button is ignored until the Crystal
Space event loop is activated--at which time Crystal Space processes the
window-close event.  It might be worthwhile to offer the user the option to
forcibly kill the application in this case, but at the very least the user
must be warned that doing so might corrupt data on disk (for instance, if
the engine is updating a ZIP file on a VFS volume.
<P>

<LI>
Ked Shayer (<A HREF="mailto:c.shayer2@ukonline.co.uk">c.shayer2@ukonline.co.uk</A>) suggests using NASM for
the assembler code.
</UL>
<P>

<A NAME="MS-DOS"></A>
<HR SIZE=1>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_40.html#SEC109"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_42.html#SEC111"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_37.html#SEC105"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_38.html#SEC107"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_42.html#SEC111"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="index.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_285.html#SEC711">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<BR>  
<FONT SIZE="-1">
This document was generated

using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>

</BODY>
</HTML>