mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-21 02:52:50 -05:00
Port of Duke Nukem 3D
This ports Fabien Sanglard's Chocolate Duke to run on a version of SDL for Rockbox. Change-Id: I8f2c4c78af19de10c1633ed7bb7a997b43256dd9
This commit is contained in:
parent
01c6dcf6c7
commit
a855d62025
994 changed files with 336924 additions and 15 deletions
105
apps/plugins/sdl/progs/duke3d/Engine/src/draw.h
Normal file
105
apps/plugins/sdl/progs/duke3d/Engine/src/draw.h
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
/*
|
||||
* "Build Engine & Tools" Copyright (c) 1993-1997 Ken Silverman
|
||||
* Ken Silverman's official web site: "http://www.advsys.net/ken"
|
||||
* See the included license file "BUILDLIC.TXT" for license info.
|
||||
* This file IS NOT A PART OF Ken Silverman's original release
|
||||
*/
|
||||
|
||||
#ifndef _INCLUDE_A_H_
|
||||
#define _INCLUDE_A_H_
|
||||
|
||||
#ifdef _WIN32
|
||||
#include "windows/inttypes.h"
|
||||
#else
|
||||
#include <inttypes.h>
|
||||
#endif
|
||||
|
||||
|
||||
//C++ linker friendly
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
extern uint8_t *transluc;
|
||||
|
||||
|
||||
extern uint8_t *globalpalwritten;
|
||||
extern int16_t globalshiftval;
|
||||
extern int32_t vplce[4], vince[4];
|
||||
extern intptr_t bufplce[4];
|
||||
extern uint8_t* palookupoffse[4];
|
||||
|
||||
void sethlinesizes(int32_t,int32_t,uint8_t *);
|
||||
|
||||
|
||||
void hlineasm4(int32_t,int32_t,uint32_t,uint32_t,uint8_t*);
|
||||
void setuprhlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||
void rhlineasm4(int32_t,uint8_t*,int32_t,uint32_t,uint32_t,int32_t);
|
||||
void setuprmhlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||
void rmhlineasm4(int32_t,intptr_t,int32_t,int32_t,int32_t,int32_t);
|
||||
|
||||
|
||||
void setBytesPerLine(int32_t);
|
||||
|
||||
int32_t prevlineasm1(int32_t,uint8_t* palette ,int32_t,int32_t,uint8_t *,uint8_t *);
|
||||
int32_t vlineasm1(int32_t,uint8_t*,int32_t,int32_t,uint8_t *,uint8_t*);
|
||||
|
||||
int32_t tvlineasm1(int32_t,uint8_t *,int32_t,int32_t,uint8_t *,uint8_t * dest);
|
||||
void setuptvlineasm2(int32_t,int32_t,int32_t);
|
||||
void tvlineasm2(uint32_t,uint32_t,uintptr_t,uintptr_t,uint32_t,uintptr_t);
|
||||
int32_t mvlineasm1(int32_t,uint8_t*,int32_t,int32_t,uint8_t* texture,uint8_t* dest);
|
||||
void setupvlineasm(int32_t);
|
||||
void vlineasm4(int32_t,intptr_t);
|
||||
void setupmvlineasm(int32_t);
|
||||
void mvlineasm4(int32_t,intptr_t);
|
||||
void setupspritevline(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||
void spritevline(int32_t,uint32_t,int32_t,uint32_t,uint8_t*,uint8_t*);
|
||||
void msetupspritevline(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||
void mspritevline(int32_t,int32_t,int32_t,int32_t,uint8_t *,uint8_t *);
|
||||
void tsetupspritevline(uint8_t *,int32_t,int32_t,int32_t,int32_t);
|
||||
void DrawSpriteVerticalLine(int32_t,int32_t,uint32_t,uint8_t* ,uint8_t*);
|
||||
void mhline(uint8_t *,int32_t,int32_t,int32_t,int32_t,uint8_t*);
|
||||
void mhlineskipmodify(uint32_t,int32_t,int32_t,uint8_t*);
|
||||
void msethlineshift(int32_t,int32_t);
|
||||
void thline(uint8_t*,int32_t,int32_t,int32_t,int32_t,uint8_t *);
|
||||
void thlineskipmodify(int32_t,uint32_t,uint32_t,int32_t,int32_t,uint8_t *);
|
||||
void tsethlineshift(int32_t,int32_t);
|
||||
void setupslopevlin(int32_t,intptr_t,int32_t);
|
||||
void slopevlin(intptr_t,uint32_t,int32_t,int32_t,int32_t,int32_t);
|
||||
|
||||
|
||||
#define TRANS_NORMAL 0
|
||||
#define TRANS_REVERSE 1
|
||||
void settrans(int32_t type);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//FCS: In order to see how the engine renders different part of the screen you can set the following macros
|
||||
//VISUALIZE RENDERER
|
||||
|
||||
#define MAX_PIXEL_RENDERERED ((1600*1200)+20000 )
|
||||
extern int32_t pixelsAllowed;
|
||||
|
||||
#define RENDER_DRAW_WALL_BORDERS 1
|
||||
#define RENDER_DRAW_WALL_INSIDE 1
|
||||
#define RENDER_DRAW_CEILING_AND_FLOOR 1
|
||||
#define RENDER_DRAW_TOP_AND_BOTTOM_COLUMN 1
|
||||
#define RENDER_SLOPPED_CEILING_AND_FLOOR 1
|
||||
|
||||
#if RENDER_DRAW_WALL_BORDERS && RENDER_DRAW_WALL_INSIDE && RENDER_DRAW_CEILING_AND_FLOOR && RENDER_DRAW_TOP_AND_BOTTOM_COLUMN && RENDER_SLOPPED_CEILING_AND_FLOOR && MAX_PIXEL_RENDERERED!=0
|
||||
#define CLEAR_FRAMEBUFFER 0
|
||||
#else
|
||||
#define CLEAR_FRAMEBUFFER 1
|
||||
#endif
|
||||
//END VISUALIZE RENDERER
|
||||
|
||||
|
||||
//C++
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue