(svn r10096) -Fix r10092: freetype bypassed the Blitter::Encode, making fonts look weird
This commit is contained in:
@@ -6,8 +6,6 @@
|
||||
|
||||
static FBlitter_8bppDebug iFBlitter_8bppDebug;
|
||||
|
||||
extern void* AllocSprite(size_t);
|
||||
|
||||
void Blitter_8bppDebug::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom)
|
||||
{
|
||||
const byte *src, *src_line;
|
||||
@@ -33,10 +31,10 @@ void Blitter_8bppDebug::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomL
|
||||
}
|
||||
}
|
||||
|
||||
Sprite *Blitter_8bppDebug::Encode(SpriteLoader::Sprite *sprite)
|
||||
Sprite *Blitter_8bppDebug::Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator)
|
||||
{
|
||||
Sprite *dest_sprite;
|
||||
dest_sprite = (Sprite *)AllocSprite(sizeof(*dest_sprite) + sprite->height * sprite->width);
|
||||
dest_sprite = (Sprite *)allocator(sizeof(*dest_sprite) + sprite->height * sprite->width);
|
||||
|
||||
dest_sprite->height = sprite->height;
|
||||
dest_sprite->width = sprite->width;
|
||||
|
@@ -15,7 +15,7 @@ public:
|
||||
|
||||
void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
|
||||
|
||||
Sprite *Encode(SpriteLoader::Sprite *sprite);
|
||||
Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator);
|
||||
};
|
||||
|
||||
class FBlitter_8bppDebug: public BlitterFactory<FBlitter_8bppDebug> {
|
||||
|
@@ -6,8 +6,6 @@
|
||||
|
||||
static FBlitter_8bppOptimized iFBlitter_8bppOptimized;
|
||||
|
||||
extern void* AllocSprite(size_t);
|
||||
|
||||
void Blitter_8bppOptimized::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom)
|
||||
{
|
||||
const byte *src, *src_next;
|
||||
@@ -100,7 +98,7 @@ void Blitter_8bppOptimized::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Z
|
||||
}
|
||||
}
|
||||
|
||||
Sprite *Blitter_8bppOptimized::Encode(SpriteLoader::Sprite *sprite)
|
||||
Sprite *Blitter_8bppOptimized::Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator)
|
||||
{
|
||||
Sprite *dest_sprite;
|
||||
byte *temp_dst;
|
||||
@@ -191,7 +189,7 @@ Sprite *Blitter_8bppOptimized::Encode(SpriteLoader::Sprite *sprite)
|
||||
assert(index < memory);
|
||||
|
||||
/* Allocate the exact amount of memory we need */
|
||||
dest_sprite = (Sprite *)AllocSprite(sizeof(*dest_sprite) + index);
|
||||
dest_sprite = (Sprite *)allocator(sizeof(*dest_sprite) + index);
|
||||
|
||||
dest_sprite->height = sprite->height;
|
||||
dest_sprite->width = sprite->width;
|
||||
|
@@ -15,7 +15,7 @@ public:
|
||||
|
||||
void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
|
||||
|
||||
Sprite *Encode(SpriteLoader::Sprite *sprite);
|
||||
Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator);
|
||||
};
|
||||
|
||||
class FBlitter_8bppOptimized: public BlitterFactory<FBlitter_8bppOptimized> {
|
||||
|
@@ -5,8 +5,6 @@
|
||||
|
||||
static FBlitter_8bppSimple iFBlitter_8bppSimple;
|
||||
|
||||
extern void* AllocSprite(size_t);
|
||||
|
||||
void Blitter_8bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom)
|
||||
{
|
||||
const byte *src, *src_line;
|
||||
@@ -46,10 +44,10 @@ void Blitter_8bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Zoom
|
||||
}
|
||||
}
|
||||
|
||||
Sprite *Blitter_8bppSimple::Encode(SpriteLoader::Sprite *sprite)
|
||||
Sprite *Blitter_8bppSimple::Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator)
|
||||
{
|
||||
Sprite *dest_sprite;
|
||||
dest_sprite = (Sprite *)AllocSprite(sizeof(*dest_sprite) + sprite->height * sprite->width);
|
||||
dest_sprite = (Sprite *)allocator(sizeof(*dest_sprite) + sprite->height * sprite->width);;
|
||||
|
||||
dest_sprite->height = sprite->height;
|
||||
dest_sprite->width = sprite->width;
|
||||
|
@@ -15,7 +15,7 @@ public:
|
||||
|
||||
void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
|
||||
|
||||
Sprite *Encode(SpriteLoader::Sprite *sprite);
|
||||
Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator);
|
||||
};
|
||||
|
||||
class FBlitter_8bppSimple: public BlitterFactory<FBlitter_8bppSimple> {
|
||||
|
@@ -35,6 +35,8 @@ public:
|
||||
int pitch; ///< The pitch of the destination buffer
|
||||
};
|
||||
|
||||
typedef void *AllocatorProc(size_t size);
|
||||
|
||||
/**
|
||||
* Get the screen depth this blitter works for.
|
||||
* This is either: 8, 16, 24 or 32.
|
||||
@@ -49,7 +51,7 @@ public:
|
||||
/**
|
||||
* Convert a sprite from the loader to our own format.
|
||||
*/
|
||||
virtual Sprite *Encode(SpriteLoader::Sprite *sprite) = 0;
|
||||
virtual Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator) = 0;
|
||||
|
||||
virtual ~Blitter() { }
|
||||
};
|
||||
|
Reference in New Issue
Block a user