Mercurial > sdl-ios-xcode
annotate src/video/nds/SDL_ndsrender.c @ 2688:71c56e900f8b gsoc2008_nds
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
author | Darren Alton <dalton@stevens.edu> |
---|---|
date | Fri, 15 Aug 2008 10:17:07 +0000 |
parents | 5166b19b6808 |
children | ca01c20274c0 |
rev | line source |
---|---|
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
1 /* |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
2 SDL - Simple DirectMedia Layer |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
3 Copyright (C) 1997-2006 Sam Lantinga |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
4 |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
5 This library is free software; you can redistribute it and/or |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
6 modify it under the terms of the GNU Lesser General Public |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
7 License as published by the Free Software Foundation; either |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
8 version 2.1 of the License, or (at your option) any later version. |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
9 |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
10 This library is distributed in the hope that it will be useful, |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
13 Lesser General Public License for more details. |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
14 |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
15 You should have received a copy of the GNU Lesser General Public |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
16 License along with this library; if not, write to the Free Software |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
18 |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
19 Sam Lantinga |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
20 slouken@libsdl.org |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
21 */ |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
22 |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
23 #include <stdio.h> |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
24 #include <stdlib.h> |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
25 #include <nds.h> |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
26 #include <nds/arm9/video.h> |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
27 #include <nds/arm9/sprite.h> |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
28 #include <nds/arm9/trig_lut.h> |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
29 |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
30 #include "SDL_config.h" |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
31 |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
32 #include "SDL_video.h" |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
33 #include "../SDL_sysvideo.h" |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
34 #include "../SDL_yuv_sw_c.h" |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
35 #include "../SDL_renderer_sw.h" |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
36 |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
37 |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
38 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
39 /* NDS sprite-related functions */ |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
40 #define SPRITE_DMA_CHANNEL 3 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
41 #define SPRITE_ANGLE_MASK 0x01FF |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
42 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
43 void |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
44 NDS_OAM_Update(tOAM *oam) |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
45 { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
46 DC_FlushAll(); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
47 dmaCopyHalfWords(SPRITE_DMA_CHANNEL, oam->spriteBuffer, OAM, |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
48 SPRITE_COUNT * sizeof(SpriteEntry)); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
49 } |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
50 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
51 void |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
52 NDS_OAM_RotateSprite(SpriteRotation *spriteRotation, u16 angle) |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
53 { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
54 s16 s = SIN[angle & SPRITE_ANGLE_MASK] >> 4; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
55 s16 c = COS[angle & SPRITE_ANGLE_MASK] >> 4; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
56 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
57 spriteRotation->hdx = c; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
58 spriteRotation->hdy = s; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
59 spriteRotation->vdx = -s; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
60 spriteRotation->vdy = c; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
61 } |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
62 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
63 void |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
64 NDS_OAM_Init(tOAM *oam) |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
65 { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
66 int i; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
67 for(i = 0; i < SPRITE_COUNT; i++) { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
68 oam->spriteBuffer[i].attribute[0] = ATTR0_DISABLED; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
69 oam->spriteBuffer[i].attribute[1] = 0; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
70 oam->spriteBuffer[i].attribute[2] = 0; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
71 } |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
72 for(i = 0; i < MATRIX_COUNT; i++) { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
73 NDS_OAM_RotateSprite(&(oam->matrixBuffer[i]), 0); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
74 } |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
75 swiWaitForVBlank(); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
76 NDS_OAM_Update(oam); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
77 } |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
78 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
79 void |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
80 NDS_OAM_HideSprite(SpriteEntry *spriteEntry) |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
81 { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
82 spriteEntry->isRotoscale = 0; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
83 spriteEntry->isHidden = 1; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
84 } |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
85 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
86 void |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
87 NDS_OAM_ShowSprite(SpriteEntry *spriteEntry, int affine, int double_bound) |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
88 { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
89 if (affine) { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
90 spriteEntry->isRotoscale = 1; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
91 spriteEntry->rsDouble = double_bound; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
92 } else { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
93 spriteEntry->isHidden = 0; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
94 } |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
95 } |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
96 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
97 |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
98 /* SDL NDS renderer implementation */ |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
99 |
2677
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
100 static SDL_Renderer *NDS_CreateRenderer(SDL_Window * window, Uint32 flags); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
101 static int NDS_ActivateRenderer(SDL_Renderer * renderer); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
102 static int NDS_DisplayModeChanged(SDL_Renderer * renderer); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
103 static int NDS_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
104 static int NDS_QueryTexturePixels(SDL_Renderer * renderer, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
105 SDL_Texture * texture, void **pixels, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
106 int *pitch); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
107 static int NDS_SetTexturePalette(SDL_Renderer * renderer, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
108 SDL_Texture * texture, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
109 const SDL_Color * colors, int firstcolor, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
110 int ncolors); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
111 static int NDS_GetTexturePalette(SDL_Renderer * renderer, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
112 SDL_Texture * texture, SDL_Color * colors, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
113 int firstcolor, int ncolors); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
114 static int NDS_SetTextureColorMod(SDL_Renderer * renderer, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
115 SDL_Texture * texture); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
116 static int NDS_SetTextureAlphaMod(SDL_Renderer * renderer, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
117 SDL_Texture * texture); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
118 static int NDS_SetTextureBlendMode(SDL_Renderer * renderer, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
119 SDL_Texture * texture); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
120 static int NDS_SetTextureScaleMode(SDL_Renderer * renderer, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
121 SDL_Texture * texture); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
122 static int NDS_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
123 const SDL_Rect * rect, const void *pixels, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
124 int pitch); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
125 static int NDS_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
126 const SDL_Rect * rect, int markDirty, void **pixels, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
127 int *pitch); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
128 static void NDS_UnlockTexture(SDL_Renderer * renderer, SDL_Texture * texture); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
129 static void NDS_DirtyTexture(SDL_Renderer * renderer, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
130 SDL_Texture * texture, int numrects, |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
131 const SDL_Rect * rects); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
132 static int NDS_RenderFill(SDL_Renderer * renderer, Uint8 r, Uint8 g, |
2671
c3e7c0698cbb
some changes to the dummy driver for debug purposes that should be reverted.
Darren Alton <dalton@stevens.edu>
parents:
2670
diff
changeset
|
133 Uint8 b, Uint8 a, const SDL_Rect * rect); |
2677
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
134 static int NDS_RenderCopy(SDL_Renderer * renderer, |
2671
c3e7c0698cbb
some changes to the dummy driver for debug purposes that should be reverted.
Darren Alton <dalton@stevens.edu>
parents:
2670
diff
changeset
|
135 SDL_Texture * texture, |
c3e7c0698cbb
some changes to the dummy driver for debug purposes that should be reverted.
Darren Alton <dalton@stevens.edu>
parents:
2670
diff
changeset
|
136 const SDL_Rect * srcrect, |
c3e7c0698cbb
some changes to the dummy driver for debug purposes that should be reverted.
Darren Alton <dalton@stevens.edu>
parents:
2670
diff
changeset
|
137 const SDL_Rect * dstrect); |
2677
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
138 static void NDS_RenderPresent(SDL_Renderer * renderer); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
139 static void NDS_DestroyTexture(SDL_Renderer * renderer, SDL_Texture * texture); |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
140 static void NDS_DestroyRenderer(SDL_Renderer * renderer); |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
141 |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
142 |
2677
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
143 SDL_RenderDriver NDS_RenderDriver = { |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
144 NDS_CreateRenderer, |
2679
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
145 { "nds", /* char* name */ |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
146 (SDL_RENDERER_SINGLEBUFFER|SDL_RENDERER_ACCELERATED), /* u32 flags */ |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
147 (SDL_TEXTUREMODULATE_NONE), /* u32 mod_modes */ |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
148 (SDL_TEXTUREBLENDMODE_NONE), /* u32 blend_modes */ |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
149 (SDL_TEXTURESCALEMODE_NONE), /* u32 scale_modes */ |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
150 3, /* u32 num_texture_formats */ |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
151 { |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
152 SDL_PIXELFORMAT_INDEX8, |
2681
c15b6c758be5
Some small bug fixes and more work on video
Darren Alton <dalton@stevens.edu>
parents:
2680
diff
changeset
|
153 SDL_PIXELFORMAT_ABGR1555, |
c15b6c758be5
Some small bug fixes and more work on video
Darren Alton <dalton@stevens.edu>
parents:
2680
diff
changeset
|
154 SDL_PIXELFORMAT_BGR555, |
2679
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
155 }, /* u32 texture_formats[20] */ |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
156 (256), /* int max_texture_width */ |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
157 (256), /* int max_texture_height */ |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
158 } |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
159 }; |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
160 |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
161 typedef struct |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
162 { |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
163 bg_attribute *bg; /* backgrounds */ |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
164 tOAM oam_copy; /* sprites */ |
2679
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
165 u8 bg_taken[4]; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
166 int sub; |
2677
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
167 } NDS_RenderData; |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
168 |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
169 typedef struct |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
170 { |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
171 enum { NDSTX_BG, NDSTX_SPR } type; |
2679
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
172 int hw_index; |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
173 struct { int hdx, hdy, vdx, vdy, pitch, bpp; } dim; |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
174 u16 *vram; |
2687
5166b19b6808
renderer: Added a separate copy of texture pixels in system RAM, copied into VRAM during RenderPresent. Still trying to fix rendering.
Darren Alton <dalton@stevens.edu>
parents:
2685
diff
changeset
|
175 u16 *system_ram_copy; |
5166b19b6808
renderer: Added a separate copy of texture pixels in system RAM, copied into VRAM during RenderPresent. Still trying to fix rendering.
Darren Alton <dalton@stevens.edu>
parents:
2685
diff
changeset
|
176 int size; |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
177 } NDS_TextureData; |
2672
74ac057679d5
NDS video driver is now functional, using software rendering and framebuffer.
Darren Alton <dalton@stevens.edu>
parents:
2671
diff
changeset
|
178 |
74ac057679d5
NDS video driver is now functional, using software rendering and framebuffer.
Darren Alton <dalton@stevens.edu>
parents:
2671
diff
changeset
|
179 |
74ac057679d5
NDS video driver is now functional, using software rendering and framebuffer.
Darren Alton <dalton@stevens.edu>
parents:
2671
diff
changeset
|
180 |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
181 SDL_Renderer * |
2677
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
182 NDS_CreateRenderer(SDL_Window * window, Uint32 flags) |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
183 { |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
184 SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window); |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
185 SDL_DisplayMode *displayMode = &display->current_mode; |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
186 SDL_Renderer *renderer; |
2677
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
187 NDS_RenderData *data; |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
188 int i, n; |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
189 int bpp; |
2673
24a6b3588eac
Cleaned up and added joypad support from 1.2.9 NDS port. Also some minor video driver bugfixes.
Darren Alton <dalton@stevens.edu>
parents:
2672
diff
changeset
|
190 Uint32 Rmask, Gmask, Bmask, Amask; |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
191 |
2680
4135aa9c5645
More work on the accelerated 2D video driver, beginnings of sprite-based rendering support. Also some initial work on an audio driver.
Darren Alton <dalton@stevens.edu>
parents:
2679
diff
changeset
|
192 printf("+NDS_CreateRenderer\n"); |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
193 if (!SDL_PixelFormatEnumToMasks(displayMode->format, &bpp, |
2673
24a6b3588eac
Cleaned up and added joypad support from 1.2.9 NDS port. Also some minor video driver bugfixes.
Darren Alton <dalton@stevens.edu>
parents:
2672
diff
changeset
|
194 &Rmask, &Gmask, &Bmask, &Amask)) { |
24a6b3588eac
Cleaned up and added joypad support from 1.2.9 NDS port. Also some minor video driver bugfixes.
Darren Alton <dalton@stevens.edu>
parents:
2672
diff
changeset
|
195 SDL_SetError("Unknown display format"); |
24a6b3588eac
Cleaned up and added joypad support from 1.2.9 NDS port. Also some minor video driver bugfixes.
Darren Alton <dalton@stevens.edu>
parents:
2672
diff
changeset
|
196 return NULL; |
24a6b3588eac
Cleaned up and added joypad support from 1.2.9 NDS port. Also some minor video driver bugfixes.
Darren Alton <dalton@stevens.edu>
parents:
2672
diff
changeset
|
197 } |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
198 switch(displayMode->format) { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
199 case SDL_PIXELFORMAT_INDEX8: |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
200 case SDL_PIXELFORMAT_ABGR1555: |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
201 case SDL_PIXELFORMAT_BGR555: |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
202 /* okay */ |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
203 break; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
204 default: |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
205 printf("DEBUG: wrong display format!\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
206 break; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
207 } |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
208 |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
209 renderer = (SDL_Renderer *) SDL_calloc(1, sizeof(*renderer)); |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
210 if (!renderer) { |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
211 SDL_OutOfMemory(); |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
212 return NULL; |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
213 } |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
214 |
2677
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
215 data = (NDS_RenderData *) SDL_malloc(sizeof(*data)); |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
216 if (!data) { |
2677
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
217 NDS_DestroyRenderer(renderer); |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
218 SDL_OutOfMemory(); |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
219 return NULL; |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
220 } |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
221 SDL_zerop(data); |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
222 |
2677
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
223 renderer->RenderFill = NDS_RenderFill; |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
224 renderer->RenderCopy = NDS_RenderCopy; |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
225 renderer->RenderPresent = NDS_RenderPresent; |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
226 renderer->DestroyRenderer = NDS_DestroyRenderer; |
6386764eb222
Starting to work on a more complete video driver.
Darren Alton <dalton@stevens.edu>
parents:
2673
diff
changeset
|
227 renderer->info.name = NDS_RenderDriver.info.name; |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
228 renderer->info.flags = 0; |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
229 renderer->window = window->id; |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
230 renderer->driverdata = data; |
2679
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
231 renderer->CreateTexture = NDS_CreateTexture; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
232 renderer->QueryTexturePixels = NDS_QueryTexturePixels; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
233 renderer->SetTexturePalette = NDS_SetTexturePalette; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
234 renderer->GetTexturePalette = NDS_GetTexturePalette; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
235 renderer->SetTextureColorMod = NDS_SetTextureColorMod; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
236 renderer->SetTextureAlphaMod = NDS_SetTextureAlphaMod; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
237 renderer->SetTextureBlendMode = NDS_SetTextureBlendMode; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
238 renderer->SetTextureScaleMode = NDS_SetTextureScaleMode; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
239 renderer->UpdateTexture = NDS_UpdateTexture; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
240 renderer->LockTexture = NDS_LockTexture; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
241 renderer->UnlockTexture = NDS_UnlockTexture; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
242 renderer->DirtyTexture = NDS_DirtyTexture; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
243 renderer->DestroyTexture = NDS_DestroyTexture; |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
244 |
2679
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
245 renderer->info.mod_modes = NDS_RenderDriver.info.mod_modes; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
246 renderer->info.blend_modes = NDS_RenderDriver.info.blend_modes; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
247 renderer->info.scale_modes = NDS_RenderDriver.info.scale_modes; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
248 renderer->info.num_texture_formats = |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
249 NDS_RenderDriver.info.num_texture_formats; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
250 SDL_memcpy(renderer->info.texture_formats, |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
251 NDS_RenderDriver.info.texture_formats, |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
252 sizeof(renderer->info.texture_formats));; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
253 renderer->info.max_texture_width = NDS_RenderDriver.info.max_texture_width; |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
254 renderer->info.max_texture_height = |
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
255 NDS_RenderDriver.info.max_texture_height; |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
256 |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
257 data->bg = &BACKGROUND; /* BACKGROUND_SUB for second screen. */ |
2679
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
258 data->bg_taken[2] = data->bg_taken[3] = 0; |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
259 NDS_OAM_Init(&(data->oam_copy)); /* init sprites. */ |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
260 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
261 data->sub = 0; /* TODO: this is hard-coded to the "main" screen. |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
262 figure out how to detect whether to set it to |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
263 "sub" screen. window->id, perhaps? */ |
2672
74ac057679d5
NDS video driver is now functional, using software rendering and framebuffer.
Darren Alton <dalton@stevens.edu>
parents:
2671
diff
changeset
|
264 |
2680
4135aa9c5645
More work on the accelerated 2D video driver, beginnings of sprite-based rendering support. Also some initial work on an audio driver.
Darren Alton <dalton@stevens.edu>
parents:
2679
diff
changeset
|
265 printf("-NDS_CreateRenderer\n"); |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
266 return renderer; |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
267 } |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
268 |
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
269 static int |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
270 NDS_ActivateRenderer(SDL_Renderer * renderer) |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
271 { |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
272 NDS_RenderData *data = (NDS_RenderData *) renderer->driverdata; |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
273 printf("!NDS_ActivateRenderer\n"); |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
274 return 0; |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
275 } |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
276 |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
277 static int |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
278 NDS_DisplayModeChanged(SDL_Renderer * renderer) |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
279 { |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
280 NDS_RenderData *data = (NDS_RenderData *) renderer->driverdata; |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
281 printf("!NDS_DisplayModeChanged\n"); |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
282 return 0; |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
283 } |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
284 |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
285 static int |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
286 NDS_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture) |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
287 { |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
288 NDS_RenderData *data = (NDS_RenderData *) renderer->driverdata; |
2679
bc3e3e889f6d
More NDS video driver work.
Darren Alton <dalton@stevens.edu>
parents:
2678
diff
changeset
|
289 NDS_TextureData *txdat = NULL; |
2682
f7594fc66bda
Some debug work on the video driver, shows an error in the BG's vertical placement
Darren Alton <dalton@stevens.edu>
parents:
2681
diff
changeset
|
290 int i; |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
291 int bpp; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
292 Uint32 Rmask, Gmask, Bmask, Amask; |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
293 |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
294 printf("+NDS_CreateTexture\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
295 if (!SDL_PixelFormatEnumToMasks |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
296 (texture->format, &bpp, &Rmask, &Gmask, &Bmask, &Amask)) { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
297 SDL_SetError("Unknown texture format"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
298 return -1; |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
299 } |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
300 |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
301 /* conditional statements on w/h to place it as bg/sprite |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
302 depending on which one it fits. */ |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
303 if(texture->w <= 64 && texture->h <= 64) { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
304 /* TODO: implement sprites similar to how BG's are. |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
305 they have a similar affine transformation matrix |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
306 (hdx,hdy,vdx,vdy) as the backgrounds, so it should |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
307 be similar enough to handle with the same driverdata. */ |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
308 printf("Tried to make a sprite.\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
309 } else if(texture->w <= 256 && texture->h <= 256) { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
310 int whichbg = -1; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
311 if(!data->bg_taken[2]) { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
312 whichbg = 2; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
313 } else if(!data->bg_taken[3]) { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
314 whichbg = 3; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
315 } |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
316 if(whichbg >= 0) { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
317 /* TODO: maybe this should be in RenderPresent or RenderCopy |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
318 instead, copying from a malloc'd system RAM pixel buffer. */ |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
319 data->bg->control[whichbg] = (bpp == 8) ? |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
320 BG_BMP8_256x256 : BG_BMP16_256x256; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
321 data->bg->scroll[whichbg].x = 0; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
322 data->bg->scroll[whichbg].y = 0; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
323 texture->driverdata = SDL_calloc(1, sizeof(NDS_TextureData)); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
324 txdat = (NDS_TextureData*)texture->driverdata; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
325 txdat->type = NDSTX_BG; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
326 txdat->hw_index = whichbg; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
327 txdat->dim.hdx = 0x100; txdat->dim.hdy = 0; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
328 txdat->dim.vdx = 0; txdat->dim.vdy = 0x100; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
329 txdat->dim.pitch = 256 * (bpp/8); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
330 txdat->dim.bpp = bpp; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
331 txdat->vram = (u16*)(data->sub ? |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
332 BG_BMP_RAM_SUB(whichbg) : BG_BMP_RAM(whichbg)); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
333 txdat->size = txdat->dim.pitch * texture->h; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
334 } else { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
335 SDL_SetError("Out of NDS backgrounds."); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
336 printf("ran out.\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
337 } |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
338 } else { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
339 SDL_SetError("Texture too big for NDS hardware."); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
340 } |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
341 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
342 printf("-NDS_CreateTexture\n"); |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
343 if (!texture->driverdata) { |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
344 SDL_SetError("Couldn't create NDS render driver data."); |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
345 return -1; |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
346 } |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
347 |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
348 return 0; |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
349 } |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
350 |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
351 static int |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
352 NDS_QueryTexturePixels(SDL_Renderer * renderer, SDL_Texture * texture, |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
353 void **pixels, int *pitch) |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
354 { |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
355 NDS_TextureData *txdat = (NDS_TextureData *) texture->driverdata; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
356 printf("+NDS_QueryTexturePixels\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
357 *pixels = txdat->vram; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
358 *pitch = txdat->dim.pitch; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
359 printf("-NDS_QueryTexturePixels\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
360 return 0; |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
361 } |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
362 |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
363 static int |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
364 NDS_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
365 const SDL_Rect * rect, const void *pixels, int pitch) |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
366 { |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
367 NDS_TextureData *txdat = (NDS_TextureData *) texture->driverdata; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
368 Uint8 *src, *dst; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
369 int row; size_t length; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
370 printf("+NDS_UpdateTexture\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
371 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
372 src = (Uint8 *) pixels; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
373 dst = |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
374 (Uint8 *) txdat->system_ram_copy + rect->y * txdat->dim.pitch + |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
375 rect->x * (txdat->dim.bpp/8); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
376 length = rect->w * (txdat->dim.bpp/8); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
377 for (row = 0; row < rect->h; ++row) { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
378 SDL_memcpy(dst, src, length); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
379 src += pitch; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
380 dst += txdat->dim.pitch; |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
381 } |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
382 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
383 printf("-NDS_UpdateTexture\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
384 return 0; |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
385 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
386 |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
387 static int |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
388 NDS_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture, |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
389 const SDL_Rect * rect, int markDirty, void **pixels, |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
390 int *pitch) |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
391 { |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
392 NDS_TextureData *txdat = (NDS_TextureData *) texture->driverdata; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
393 int i; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
394 printf("+NDS_LockTexture\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
395 if (markDirty) { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
396 printf("wanted to mark dirty\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
397 /* TODO: figure out how to handle this! */ |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
398 /*SDL_AddDirtyRect(&txdat->dirty, rect);*/ |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
399 } |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
400 |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
401 *pixels = (void *) ((u8 *)txdat->vram + rect->y |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
402 * txdat->dim.pitch + rect->x * (txdat->dim.bpp/8)); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
403 *pitch = txdat->dim.pitch; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
404 printf(" pixels = %08x\n", (u32)*pixels); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
405 printf(" vram = %08x\n", (u32)(txdat->vram)); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
406 printf("-NDS_LockTexture\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
407 return 0; |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
408 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
409 |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
410 static void |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
411 NDS_UnlockTexture(SDL_Renderer * renderer, SDL_Texture * texture) |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
412 { |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
413 printf("+NDS_UnlockTexture\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
414 /* TODO: should I be doing something here, somehow, now that the pixels |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
415 should have been "written" between LockTexture and this? */ |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
416 printf("-NDS_UnlockTexture\n"); |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
417 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
418 |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
419 static void |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
420 NDS_DirtyTexture(SDL_Renderer * renderer, SDL_Texture * texture, |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
421 int numrects, const SDL_Rect * rects) |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
422 { |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
423 /* stub */ |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
424 printf("!NDS_DirtyTexture\n"); |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
425 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
426 |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
427 static int |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
428 NDS_RenderFill(SDL_Renderer * renderer, Uint8 r, Uint8 g, Uint8 b, |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
429 Uint8 a, const SDL_Rect * rect) |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
430 { |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
431 NDS_RenderData *data = (NDS_RenderData *) renderer->driverdata; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
432 SDL_Rect real_rect = *rect; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
433 u16 color; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
434 int i, j; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
435 |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
436 printf("+NDS_RenderFill\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
437 color = RGB8(r,g,b); /* <-- macro in libnds that makes an ARGB1555 pixel */ |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
438 /* TODO: make a single-color sprite and stretch it. |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
439 calculate the "HDX" width modifier of the sprite by: |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
440 let S be the actual sprite's width (like, 32 pixels for example) |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
441 let R be the rectangle's width (maybe 50 pixels) |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
442 HDX = (R<<8) / S; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
443 (it's fixed point, hence the bit shift. same goes for vertical. |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
444 be sure to use 32-bit int's for the bit shift before the division!) |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
445 */ |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
446 |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
447 printf("-NDS_RenderFill\n"); |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
448 return 0; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
449 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
450 |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
451 static int |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
452 NDS_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture, |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
453 const SDL_Rect * srcrect, const SDL_Rect * dstrect) |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
454 { |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
455 NDS_RenderData *data = (NDS_RenderData *) renderer->driverdata; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
456 NDS_TextureData *txdat = (NDS_TextureData *) texture->driverdata; |
2687
5166b19b6808
renderer: Added a separate copy of texture pixels in system RAM, copied into VRAM during RenderPresent. Still trying to fix rendering.
Darren Alton <dalton@stevens.edu>
parents:
2685
diff
changeset
|
457 SDL_Window *window = SDL_GetWindowFromID(renderer->window); |
5166b19b6808
renderer: Added a separate copy of texture pixels in system RAM, copied into VRAM during RenderPresent. Still trying to fix rendering.
Darren Alton <dalton@stevens.edu>
parents:
2685
diff
changeset
|
458 SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window); |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
459 int i; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
460 int bpp = SDL_BYTESPERPIXEL(texture->format); |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
461 int pitch = txdat->dim.pitch; |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
462 printf("+NDS_RenderCopy\n"); |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
463 if(txdat->type == NDSTX_BG) { |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
464 bg_rotation *tmpbg = (txdat->hw_index == 2) ? |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
465 &(data->bg->bg2_rotation) : &(data->bg->bg3_rotation); |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
466 tmpbg->xdx = txdat->dim.hdx; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
467 tmpbg->xdy = txdat->dim.hdy; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
468 tmpbg->ydx = txdat->dim.vdx; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
469 tmpbg->ydy = txdat->dim.vdy; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
470 tmpbg->centerX = 0; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
471 tmpbg->centerY = 0; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
472 } else { |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
473 /* sprites not implemented yet */ |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
474 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
475 printf(" txdat->hw_index = %d\n", txdat->hw_index); |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
476 printf("-NDS_RenderCopy\n"); |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
477 return 0; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
478 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
479 |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
480 |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
481 static void |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
482 NDS_RenderPresent(SDL_Renderer * renderer) |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
483 { |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
484 NDS_RenderData *data = (NDS_RenderData *) renderer->driverdata; |
2687
5166b19b6808
renderer: Added a separate copy of texture pixels in system RAM, copied into VRAM during RenderPresent. Still trying to fix rendering.
Darren Alton <dalton@stevens.edu>
parents:
2685
diff
changeset
|
485 SDL_Window *window = SDL_GetWindowFromID(renderer->window); |
5166b19b6808
renderer: Added a separate copy of texture pixels in system RAM, copied into VRAM during RenderPresent. Still trying to fix rendering.
Darren Alton <dalton@stevens.edu>
parents:
2685
diff
changeset
|
486 SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window); |
5166b19b6808
renderer: Added a separate copy of texture pixels in system RAM, copied into VRAM during RenderPresent. Still trying to fix rendering.
Darren Alton <dalton@stevens.edu>
parents:
2685
diff
changeset
|
487 int i; |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
488 printf("+NDS_RenderPresent\n"); |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
489 |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
490 { |
2687
5166b19b6808
renderer: Added a separate copy of texture pixels in system RAM, copied into VRAM during RenderPresent. Still trying to fix rendering.
Darren Alton <dalton@stevens.edu>
parents:
2685
diff
changeset
|
491 SDL_Texture * tx = display->textures[i]; |
5166b19b6808
renderer: Added a separate copy of texture pixels in system RAM, copied into VRAM during RenderPresent. Still trying to fix rendering.
Darren Alton <dalton@stevens.edu>
parents:
2685
diff
changeset
|
492 NDS_TextureData * txdat = (NDS_TextureData*)tx->driverdata; |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
493 /* Send the data to the display TODO : |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
494 shouldn't it already be there at this point? from lock/unlock |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
495 giving it the direct address in VRAM of the bg's. |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
496 I guess set the BG's and sprites "visible" flags here, |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
497 if applicable. */ |
2687
5166b19b6808
renderer: Added a separate copy of texture pixels in system RAM, copied into VRAM during RenderPresent. Still trying to fix rendering.
Darren Alton <dalton@stevens.edu>
parents:
2685
diff
changeset
|
498 } |
5166b19b6808
renderer: Added a separate copy of texture pixels in system RAM, copied into VRAM during RenderPresent. Still trying to fix rendering.
Darren Alton <dalton@stevens.edu>
parents:
2685
diff
changeset
|
499 |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
500 /* vsync for NDS */ |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
501 if (renderer->info.flags & SDL_RENDERER_PRESENTVSYNC) { |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
502 swiWaitForVBlank(); |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
503 } |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
504 printf("-NDS_RenderPresent\n"); |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
505 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
506 |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
507 static void |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
508 NDS_DestroyTexture(SDL_Renderer * renderer, SDL_Texture * texture) |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
509 { |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
510 printf("+NDS_DestroyTexture\n"); |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
511 if (SDL_ISPIXELFORMAT_FOURCC(texture->format)) { |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
512 SDL_SetError("Unsupported texture format"); |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
513 } else { |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
514 /* free anything else allocated for texture */ |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
515 NDS_TextureData *txdat = texture->driverdata; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
516 /*SDL_FreeDirtyRects(&txdat->dirty);*/ |
2687
5166b19b6808
renderer: Added a separate copy of texture pixels in system RAM, copied into VRAM during RenderPresent. Still trying to fix rendering.
Darren Alton <dalton@stevens.edu>
parents:
2685
diff
changeset
|
517 SDL_free(txdat->system_ram_copy); |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
518 SDL_free(txdat); |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
519 } |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
520 printf("-NDS_DestroyTexture\n"); |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
521 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
522 |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
523 static void |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
524 NDS_DestroyRenderer(SDL_Renderer * renderer) |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
525 { |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
526 NDS_RenderData *data = (NDS_RenderData *) renderer->driverdata; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
527 /*SDL_Window *window = SDL_GetWindowFromID(renderer->window); |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
528 SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);*/ |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
529 int i; |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
530 |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
531 printf("+NDS_DestroyRenderer\n"); |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
532 if (data) { |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
533 /* TODO: free anything else relevant. */ |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
534 /*for (i = 0; i < SDL_arraysize(data->texture); ++i) { |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
535 if (data->texture[i]) { |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
536 DestroyTexture(data->renderer, data->texture[i]); |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
537 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
538 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
539 if (data->surface.format) { |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
540 SDL_SetSurfacePalette(&data->surface, NULL); |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
541 SDL_FreeFormat(data->surface.format); |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
542 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
543 if (display->palette) { |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
544 SDL_DelPaletteWatch(display->palette, DisplayPaletteChanged, |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
545 data); |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
546 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
547 SDL_FreeDirtyRects(&data->dirty);*/ |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
548 SDL_free(data); |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
549 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
550 SDL_free(renderer); |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
551 printf("-NDS_DestroyRenderer\n"); |
2685
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
552 } |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
553 |
2190b873ff00
Making room for test prog's
Darren Alton <dalton@stevens.edu>
parents:
2683
diff
changeset
|
554 static int |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
555 NDS_SetTexturePalette(SDL_Renderer * renderer, SDL_Texture * texture, |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
556 const SDL_Color * colors, int firstcolor, int ncolors) |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
557 { |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
558 NDS_TextureData *txdat = (NDS_TextureData *) texture->driverdata; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
559 printf("+NDS_SetTexturePalette\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
560 /* set 8-bit modes in the background control registers |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
561 for backgrounds, BGn_CR |= BG_256_COLOR */ |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
562 printf("-NDS_SetTexturePalette\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
563 return 0; |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
564 } |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
565 |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
566 static int |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
567 NDS_GetTexturePalette(SDL_Renderer * renderer, SDL_Texture * texture, |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
568 SDL_Color * colors, int firstcolor, int ncolors) |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
569 { |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
570 printf("+NDS_GetTexturePalette\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
571 NDS_TextureData *txdat = (NDS_TextureData *) texture->driverdata; |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
572 printf("-NDS_GetTexturePalette\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
573 return 0; |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
574 } |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
575 |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
576 static int |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
577 NDS_SetTextureColorMod(SDL_Renderer * renderer, SDL_Texture * texture) |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
578 { |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
579 printf("!NDS_SetTextureColorMod\n"); |
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
580 /* stub! */ |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
581 return 0; |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
582 } |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
583 |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
584 static int |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
585 NDS_SetTextureAlphaMod(SDL_Renderer * renderer, SDL_Texture * texture) |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
586 { |
2680
4135aa9c5645
More work on the accelerated 2D video driver, beginnings of sprite-based rendering support. Also some initial work on an audio driver.
Darren Alton <dalton@stevens.edu>
parents:
2679
diff
changeset
|
587 printf("!NDS_SetTextureAlphaMod\n"); |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
588 /* stub! */ |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
589 return 0; |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
590 } |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
591 |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
592 static int |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
593 NDS_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture) |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
594 { |
2680
4135aa9c5645
More work on the accelerated 2D video driver, beginnings of sprite-based rendering support. Also some initial work on an audio driver.
Darren Alton <dalton@stevens.edu>
parents:
2679
diff
changeset
|
595 printf("!NDS_SetTextureBlendMode\n"); |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
596 /* stub! */ |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
597 return 0; |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
598 } |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
599 |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
600 static int |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
601 NDS_SetTextureScaleMode(SDL_Renderer * renderer, SDL_Texture * texture) |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
602 { |
2680
4135aa9c5645
More work on the accelerated 2D video driver, beginnings of sprite-based rendering support. Also some initial work on an audio driver.
Darren Alton <dalton@stevens.edu>
parents:
2679
diff
changeset
|
603 printf("!NDS_SetTextureScaleMode\n"); |
2688
71c56e900f8b
Cleaning up the renderer code to hopefully squish any problems. Starting to incorporate sprites, as well
Darren Alton <dalton@stevens.edu>
parents:
2687
diff
changeset
|
604 /* stub! (note: NDS hardware scaling is nearest neighbor.) */ |
2678
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
605 return 0; |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
606 } |
3895761db26a
Removed old touchscreen system, starting to implement mouse-based touchscreen. Also, more work on a non-software-rendering video driver
Darren Alton <dalton@stevens.edu>
parents:
2677
diff
changeset
|
607 |
2670
6e4669f4db49
Fix for the previous commit: actually 'svn add'ed some files.
Darren Alton <dalton@stevens.edu>
parents:
diff
changeset
|
608 /* vi: set ts=4 sw=4 expandtab: */ |