* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*/
-/*Modified 2003 by Andre Noll */
+/*Modified 2003, 2006 by Andre Noll */
#include <SDL/SDL.h>
#include "SFont.h"
#include <string.h> /* strlen */
SFont_FontInfo InternalFont;
-Uint32 GetPixel(SDL_Surface * Surface, Sint32 X, Sint32 Y)
+static Uint32 GetPixel(SDL_Surface *Surface, Sint32 X, Sint32 Y)
{
Uint8 *bits;
return *((Uint8 *) Surface->pixels + Y * Surface->pitch + X);
break;
case 2:
- return *((Uint16 *) Surface->pixels + Y * Surface->pitch / 2 +
- X);
+ return *((Uint16 *) Surface->pixels + Y * Surface->pitch / 2 + X);
break;
case 3:{ /* Format/endian independent */
Uint8 r, g, b;
}
break;
case 4:
- return *((Uint32 *) Surface->pixels + Y * Surface->pitch / 4 +
- X);
+ return *((Uint32 *) Surface->pixels + Y * Surface->pitch / 4 + X);
break;
}
while (x < Font->Surface->w) {
if (GetPixel(Font->Surface, x, 0) ==
- SDL_MapRGB(Font->Surface->format, 255, 0, 255)) {
+ SDL_MapRGB(Font->Surface->format, 255, 0, 255)) {
Font->CharPos[i++] = x;
- while ((x < Font->Surface->w - 1)
- && (GetPixel(Font->Surface, x, 0) ==
- SDL_MapRGB(Font->Surface->format, 255, 0,
- 255)))
+ while ((x < Font->Surface->w - 1) &&
+ (GetPixel(Font->Surface, x, 0) ==
+ SDL_MapRGB(Font->Surface->format, 255, 0, 255)))
x++;
Font->CharPos[i++] = x;
}
GetPixel(Font->Surface, 0, Font->Surface->h - 1));
}
-#if 0
-void InitFont(SDL_Surface * Font)
-{
- InternalFont.Surface = Font;
- InitFont2(&InternalFont);
-}
-
-#endif
-
-
-
void PutString2(SDL_Surface * Surface, SFont_FontInfo * Font, int x, int y,
- char *text)
+ const char *text)
{
int ofs;
int i = 0;
ofs = ((unsigned char) text[i] - 33) * 2 + 1;
srcrect.w = dstrect.w = (Font->CharPos[ofs + 2]
+ Font->CharPos[ofs + 1]) / 2
- - (Font->CharPos[ofs] + Font->CharPos[ofs - 1])
- / 2;
+ - (Font->CharPos[ofs]
+ + Font->CharPos[ofs - 1]) / 2;
srcrect.h = dstrect.h = Font->Surface->h - 1;
- srcrect.x =
- (Font->CharPos[ofs] + Font->CharPos[ofs - 1]) / 2;
+ srcrect.x = (Font->CharPos[ofs]
+ + Font->CharPos[ofs - 1]) / 2;
srcrect.y = 1;
- dstrect.x =
- x - (float) (Font->CharPos[ofs] -
- Font->CharPos[ofs - 1]) / 2;
+ dstrect.x = x - (float) (Font->CharPos[ofs]
+ - Font->CharPos[ofs - 1]) / 2;
dstrect.y = y;
SDL_BlitSurface(Font->Surface, &srcrect, Surface,
&dstrect);
}
}
}
-#if 0
-void PutString(SDL_Surface * Surface, int x, int y, char *text)
-{
- PutString2(Surface, &InternalFont, x, y, text);
-}
-#endif
int TextWidth2(SFont_FontInfo * Font, char *text)
{
int ofs = 0;
return x;
}
-#if 0
-int TextWidth(char *text)
-{
- return TextWidth2(&InternalFont, text);
-}
-#endif
-
-void XCenteredString2(SDL_Surface * Surface, SFont_FontInfo * Font, int y,
- char *text)
-{
- PutString2(Surface, Font, Surface->w / 2 - TextWidth2(Font, text) / 2,
- y, text);
-}
-
-#if 0
-void XCenteredString(SDL_Surface * Surface, int y, char *text)
-{
- XCenteredString2(Surface, &InternalFont, y, text);
-}
-#endif
-
-void SFont_InternalInput(SDL_Surface * Dest, SFont_FontInfo * Font, int x,
- int y, int PixelWidth, char *text)
+static void SFont_InternalInput(SDL_Surface * Dest, SFont_FontInfo * Font, int x,
+ int y, int PixelWidth, char *text)
{
SDL_Event event;
int ch = -1, blink = 0;
blinktimer = SDL_GetTicks() + 500;
if (blink) {
PutString2(Dest, Font,
- x + TextWidth2(Font, text), y, "|");
+ x + TextWidth2(Font, text), y, "|");
SDL_UpdateRects(Dest, 1, &rect);
} else {
SDL_BlitSurface(Back, NULL, Dest, &rect);
}
void SFont_Input2(SDL_Surface * Dest, SFont_FontInfo * Font, int x, int y,
- int PixelWidth, char *text)
+ int PixelWidth, char *text)
{
SFont_InternalInput(Dest, Font, x, y, PixelWidth, text);
}