1 /* Stereograph 2 * Header file; 3 * Copyright (c) 2000 by Fabian Januszewski <fabian.linux@januszewski.de> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 */ 19 20 21 struct GFX_DATA { 22 /* measurements */ 23 int Width; 24 int Height; 25 26 /* RGB-Data, 24bit coding @ ONE 32 bit integer, standard eastern orientation (left to right, top to bottom) */ 27 int *Data; 28 }; 29 30 struct PARAMS { 31 int Startx; 32 int Starty; 33 int AA; 34 int Zoom; 35 float Front; 36 float Distance; 37 }; 38 39 /* engine internals exclusively */ 40 struct RENDERER_DATA { 41 int startx; 42 int max_change_tex_width; 43 float *right_change_map; 44 float *left_change_map; 45 int naa; 46 int nzoom; 47 int nfactor; 48 int *scanline; 49 float realdist; 50 float internal_a; 51 }; 52 53 54 /* sets pointers of the engine interface */ 55 int Get_GFX_Pointers(struct PARAMS **pParam, struct GFX_DATA **pBase, struct GFX_DATA **pTexture, struct GFX_DATA **pStereo); 56 57 /* processes line number base_line */ 58 int ProcessLine(int base_line); 59 60 /* clears the renderer */ 61 void Clear_Renderer(void); 62 /* initializes renderer */ 63 int Initialize_Renderer(void); 64 65 66 /* engine internal functions */ 67 int RenderLine(int *base_data, int *texture_data, int *stereo_data); 68 int InitMap(float *change_map, int a, int b, float v); 69 int FillMapsLeftToRight(int *base_data); 70 float GetChange(int x, int *base_data); 71 int InsertTex(int x, int *texture_data, int *stereo_data); 72 int NormalScan(int *stereo_data); 73 int AAScan(int *stereo_data); 74 int ZoomScan(int *stereo_data); 75 int ZoomAAScan(int *stereo_data); |