X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fdraw2.c;h=5730d7b6d74daed7d2653d48c0b94efa08d06fc2;hb=9c9cda8c39bd2a6b99b8420a3034c454bc713954;hp=b2e6a7106bc005ac338555521d768f9250144059;hpb=1cfc5cc4ce06642b9bc45ca3b9d32793718e9455;p=picodrive.git diff --git a/pico/draw2.c b/pico/draw2.c index b2e6a71..5730d7b 100644 --- a/pico/draw2.c +++ b/pico/draw2.c @@ -1,25 +1,18 @@ -// This is part of Pico Library - -// (c) Copyright 2007, Grazvydas "notaz" Ignotas -// Free for non-commercial use. - -// For commercial use, separate licencing terms must be obtained. - - -// this is a frame-based renderer, alternative to Dave's line based which is in Draw.c - +/* + * tile renderer + * (C) notaz, 2006-2008 + * + * This work is licensed under the terms of MAME license. + * See COPYING file in the top-level directory. + */ #include "pico_int.h" -// port_config.h include must define these 2 defines: -// #define START_ROW 1 // which row of tiles to start rendering at? -// #define END_ROW 27 // ..end -// one row means 8 pixels. If above example was used, (27-1)*8=208 lines would be rendered. +#define START_ROW 0 // which row of tiles to start rendering at? +#define END_ROW 28 // ..end #define TILE_ROWS END_ROW-START_ROW -#define USE_CACHE - // note: this is not implemented in ARM asm #if defined(DRAW2_OVERRIDE_LINE_WIDTH) #define LINE_WIDTH DRAW2_OVERRIDE_LINE_WIDTH @@ -27,6 +20,9 @@ #define LINE_WIDTH 328 #endif +static unsigned char PicoDraw2FB_[(8+320) * (8+240+8)]; +unsigned char *PicoDraw2FB = PicoDraw2FB_; + static int HighCache2A[41*(TILE_ROWS+1)+1+1]; // caches for high layers static int HighCache2B[41*(TILE_ROWS+1)+1+1]; @@ -613,11 +609,16 @@ static void DrawDisplayFull(void) PICO_INTERNAL void PicoFrameFull() { + pprof_start(draw); + // prepare cram? if (PicoPrepareCram) PicoPrepareCram(); // Draw screen: BackFillFull(Pico.video.reg[7]); - if (Pico.video.reg[1]&0x40) DrawDisplayFull(); + if (Pico.video.reg[1] & 0x40) + DrawDisplayFull(); + + pprof_end(draw); }