Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
home:wolfi323:branches:home:wolfi323
uae
p96_blit.c
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File p96_blit.c of Package uae
#if BLT_SIZE == 3 static void NOINLINE BLT_NAME (unsigned int w, unsigned int h, uae_u8 *src, uae_u8 *dst, int srcpitch, int dstpitch) { uae_u8 *src2 = src; uae_u8 *dst2 = dst; // REMOVEME: r is not used, and this is only a forwarder for uaelib_demux2. #if 0 uae_u32 *src2_32 = (uae_u32*)src; uae_u32 *dst2_32 = (uae_u32*)dst; #endif unsigned int y, x, ww, xxd; #ifdef BLT_TEMP uae_u32 tmp; #endif w *= BLT_SIZE; ww = w / 4; xxd = w - (ww * 4); for(y = 0; y < h; y++) { uae_u8 *src_8; uae_u8 *dst_8; uae_u32 *src_32 = (uae_u32*)src2; uae_u32 *dst_32 = (uae_u32*)dst2; for (x = 0; x < ww; x++) { BLT_FUNC (src_32, dst_32); src_32++; dst_32++; } src_8 = (uae_u8*)src_32; dst_8 = (uae_u8*)dst_32; for (x = 0; x < xxd; x++) { BLT_FUNC (src_8, dst_8); src_8++; dst_8++; } dst2 += dstpitch; src2 += srcpitch; } } #else static void NOINLINE BLT_NAME (unsigned int w, unsigned int h, uae_u8 *src, uae_u8 *dst, int srcpitch, int dstpitch) { uae_u8 *src2 = src; uae_u8 *dst2 = dst; // REMOVEME: r is not used, and this is only a forwarder for uaelib_demux2. #if 0 uae_u32 *src2_32 = (uae_u32*)src; uae_u32 *dst2_32 = (uae_u32*)dst; #endif unsigned int y, x, ww, xxd; #ifdef BLT_TEMP #if BLT_SIZE == 4 uae_u32 tmp; #elif BLT_SIZE == 2 uae_u16 tmp; #else uae_u8 tmp; #endif #endif if (w < 8 * BLT_MULT) { ww = w / BLT_MULT; for(y = 0; y < h; y++) { uae_u32 *src_32 = (uae_u32*)src2; uae_u32 *dst_32 = (uae_u32*)dst2; for (x = 0; x < ww; x++) { BLT_FUNC (src_32, dst_32); src_32++; dst_32++; } #if BLT_SIZE == 2 if (w & 1) { #ifdef BLT_NEED_SOURCE uae_u16 *src_16 = (uae_u16*)src_32; #endif uae_u16 *dst_16 = (uae_u16*)dst_32; #ifdef BLT_NEED_SOURCE BLT_FUNC (src_16, dst_16); #else BLT_FUNC (NULL, dst_16); #endif // BLT_NEED_SOURCE } #elif BLT_SIZE == 1 { int wb = w & 3; uae_u8 *src_8 = (uae_u8*)src_32; uae_u8 *dst_8 = (uae_u8*)dst_32; while (wb--) { BLT_FUNC (src_8, dst_8); src_8++; dst_8++; } } #endif dst2 += dstpitch; src2 += srcpitch; } return; } ww = w / (8 * BLT_MULT); xxd = (w - ww * (8 * BLT_MULT)) / BLT_MULT; for(y = 0; y < h; y++) { uae_u32 *src_32 = (uae_u32*)src2; uae_u32 *dst_32 = (uae_u32*)dst2; for (x = 0; x < ww; x++) { BLT_FUNC (src_32, dst_32); src_32++; dst_32++; BLT_FUNC (src_32, dst_32); src_32++; dst_32++; BLT_FUNC (src_32, dst_32); src_32++; dst_32++; BLT_FUNC (src_32, dst_32); src_32++; dst_32++; BLT_FUNC (src_32, dst_32); src_32++; dst_32++; BLT_FUNC (src_32, dst_32); src_32++; dst_32++; BLT_FUNC (src_32, dst_32); src_32++; dst_32++; BLT_FUNC (src_32, dst_32); src_32++; dst_32++; } for (x = 0; x < xxd; x++) { BLT_FUNC (src_32, dst_32); src_32++; dst_32++; } #if BLT_SIZE == 2 if (w & 1) { #ifdef BLT_NEED_SOURCE uae_u16 *src_16 = (uae_u16*)src_32; #endif // BLT_NEED_SOURCE uae_u16 *dst_16 = (uae_u16*)dst_32; #ifdef BLT_NEED_SOURCE BLT_FUNC (src_16, dst_16); #else BLT_FUNC (NULL, dst_16); #endif // BLT_NEED_SOURCE } #elif BLT_SIZE == 1 { int wb = w & 3; uae_u8 *src_8 = (uae_u8*)src_32; uae_u8 *dst_8 = (uae_u8*)dst_32; while (wb--) { BLT_FUNC (src_8, dst_8); src_8++; dst_8++; } } #endif dst2 += dstpitch; src2 += srcpitch; } } #endif #undef BLT_NAME #undef BLT_FUNC #ifdef BLT_TEMP #undef BLT_TEMP #endif #define BLT_NEED_SOURCE
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor