Changeset - r6861:5c500910beb5
[Not reviewed]
master
2 3 2
truelight - 17 years ago 2007-06-11 15:13:30
truelight@openttd.org
(svn r10101) -Codechange: the class is named 8bppSimple, so name the files like that too
7 files changed with 99 insertions and 99 deletions:
0 comments (0 inline, 0 general)
projects/openttd.vcproj
Show inline comments
 
@@ -974,10 +974,10 @@
 
				RelativePath=".\..\src\blitter\8bpp_optimized.hpp">
 
			</File>
 
			<File
 
				RelativePath=".\..\src\blitter\8bpp_slow.cpp">
 
				RelativePath=".\..\src\blitter\8bpp_simple.cpp">
 
			</File>
 
			<File
 
				RelativePath=".\..\src\blitter\8bpp_slow.hpp">
 
				RelativePath=".\..\src\blitter\8bpp_simple.hpp">
 
			</File>
 
			<File
 
				RelativePath=".\..\src\blitter\blitter.hpp">
projects/openttd_vs80.vcproj
Show inline comments
 
@@ -1520,11 +1520,11 @@
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\..\src\blitter\8bpp_slow.cpp"
 
				RelativePath=".\..\src\blitter\8bpp_simple.cpp"
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\..\src\blitter\8bpp_slow.hpp"
 
				RelativePath=".\..\src\blitter\8bpp_simple.hpp"
 
				>
 
			</File>
 
			<File
source.list
Show inline comments
 
@@ -295,8 +295,8 @@ blitter/8bpp_debug.cpp
 
blitter/8bpp_debug.hpp
 
blitter/8bpp_optimized.cpp
 
blitter/8bpp_optimized.hpp
 
blitter/8bpp_slow.cpp
 
blitter/8bpp_slow.hpp
 
blitter/8bpp_simple.cpp
 
blitter/8bpp_simple.hpp
 
blitter/blitter.hpp
 

	
 
# Sprite loaders
src/blitter/8bpp_simple.cpp
Show inline comments
 
new file 100644
 
#include "../stdafx.h"
 
#include "../zoom.hpp"
 
#include "../gfx.h"
 
#include "8bpp_simple.hpp"
 

	
 
static FBlitter_8bppSimple iFBlitter_8bppSimple;
 

	
 
void Blitter_8bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom)
 
{
 
	const byte *src, *src_line;
 
	Pixel8 *dst, *dst_line;
 

	
 
	/* Find where to start reading in the source sprite */
 
	src_line = (const byte *)bp->sprite + (bp->skip_top * bp->sprite_width + bp->skip_left) * ScaleByZoom(1, zoom);
 
	dst_line = (Pixel8 *)bp->dst + bp->top * bp->pitch + bp->left;
 

	
 
	for (int y = 0; y < bp->height; y++) {
 
		dst = dst_line;
 
		dst_line += bp->pitch;
 

	
 
		src = src_line;
 
		src_line += bp->sprite_width * ScaleByZoom(1, zoom);
 

	
 
		for (int x = 0; x < bp->width; x++) {
 
			uint color = 0;
 

	
 
			switch (mode) {
 
				case BM_COLOUR_REMAP:
 
					color = bp->remap[*src];
 
					break;
 

	
 
				case BM_TRANSPARENT:
 
					if (*src != 0) color = bp->remap[*dst];
 
					break;
 

	
 
				default:
 
					color = *src;
 
					break;
 
			}
 
			if (color != 0) *dst = color;
 
			dst++;
 
			src += ScaleByZoom(1, zoom);
 
		}
 
	}
 
}
 

	
 
Sprite *Blitter_8bppSimple::Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator)
 
{
 
	Sprite *dest_sprite;
 
	dest_sprite = (Sprite *)allocator(sizeof(*dest_sprite) + sprite->height * sprite->width);;
 

	
 
	dest_sprite->height = sprite->height;
 
	dest_sprite->width  = sprite->width;
 
	dest_sprite->x_offs = sprite->x_offs;
 
	dest_sprite->y_offs = sprite->y_offs;
 

	
 
	/* Copy over only the 'remap' channel, as that is what we care about in 8bpp */
 
	for (int i = 0; i < sprite->height * sprite->width; i++) {
 
		dest_sprite->data[i] = sprite->data[i].m;
 
	}
 

	
 
	return dest_sprite;
 
}
src/blitter/8bpp_simple.hpp
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
/** @file 8bpp.hpp */
 

	
 
#ifndef BLITTER_8BPP_SIMPLE_HPP
 
#define BLITTER_8BPP_SIMPLE_HPP
 

	
 
#include "blitter.hpp"
 

	
 
typedef Pixel Pixel8;
 

	
 
class Blitter_8bppSimple : public Blitter {
 
public:
 
	uint8 GetScreenDepth() { return 8; }
 

	
 
	void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
 

	
 
	Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator);
 
};
 

	
 
class FBlitter_8bppSimple: public BlitterFactory<FBlitter_8bppSimple> {
 
public:
 
	/* virtual */ const char *GetName() { return "8bpp-simple"; }
 

	
 
	/* virtual */ const char *GetDescription() { return "8bpp Simple Blitter (relative slow, but never wrong)"; }
 

	
 
	/* virtual */ Blitter *CreateInstance() { return new Blitter_8bppSimple(); }
 
};
 

	
 
#endif /* BLITTER_8BPP_SIMPLE_HPP */
src/blitter/8bpp_slow.cpp
Show inline comments
 
deleted file
src/blitter/8bpp_slow.hpp
Show inline comments
 
deleted file
0 comments (0 inline, 0 general)