Mercurial > sdl-ios-xcode
comparison src/video/directfb/SDL_DirectFB_mouse.c @ 2735:204be4fc2726
Final merge of Google Summer of Code 2008 work...
Port SDL 1.3 to the Nintendo DS
by Darren Alton, mentored by Sam Lantinga
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Wed, 27 Aug 2008 15:10:03 +0000 |
parents | e82a0e3e9b0e |
children | 140a7edcf2bd |
comparison
equal
deleted
inserted
replaced
2734:dd25eabe441c | 2735:204be4fc2726 |
---|---|
83 dsc.caps = DSCAPS_VIDEOONLY; | 83 dsc.caps = DSCAPS_VIDEOONLY; |
84 dsc.width = surface->w; | 84 dsc.width = surface->w; |
85 dsc.height = surface->h; | 85 dsc.height = surface->h; |
86 dsc.pixelformat = DSPF_ARGB; | 86 dsc.pixelformat = DSPF_ARGB; |
87 | 87 |
88 SDL_DFB_CHECKERR(devdata->dfb-> | 88 SDL_DFB_CHECKERR(devdata-> |
89 CreateSurface(devdata->dfb, &dsc, &curdata->surf)); | 89 dfb->CreateSurface(devdata->dfb, &dsc, &curdata->surf)); |
90 curdata->hotx = hot_x; | 90 curdata->hotx = hot_x; |
91 curdata->hoty = hot_y; | 91 curdata->hoty = hot_y; |
92 cursor->driverdata = curdata; | 92 cursor->driverdata = curdata; |
93 | 93 |
94 SDL_DFB_CHECKERR(curdata->surf-> | 94 SDL_DFB_CHECKERR(curdata-> |
95 Lock(curdata->surf, DSLF_WRITE, (void *) &dest, &pitch)); | 95 surf->Lock(curdata->surf, DSLF_WRITE, (void *) &dest, |
96 &pitch)); | |
96 | 97 |
97 //FIXME: Implies a lot of things, e.g. rgba format for SDL_SURFACE .... | 98 //FIXME: Implies a lot of things, e.g. rgba format for SDL_SURFACE .... |
98 p = surface->pixels; | 99 p = surface->pixels; |
99 for (i = 0; i < surface->w * surface->h; i++) | 100 for (i = 0; i < surface->w * surface->h; i++) |
100 if (p[i] == 0x00000000) | 101 if (p[i] == 0x00000000) |
129 SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window); | 130 SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window); |
130 DFB_DisplayData *dispdata = (DFB_DisplayData *) display->driverdata; | 131 DFB_DisplayData *dispdata = (DFB_DisplayData *) display->driverdata; |
131 DFB_WindowData *windata = (DFB_WindowData *) window->driverdata; | 132 DFB_WindowData *windata = (DFB_WindowData *) window->driverdata; |
132 | 133 |
133 if (cursor) | 134 if (cursor) |
134 SDL_DFB_CHECKERR(windata->window-> | 135 SDL_DFB_CHECKERR(windata->window->SetCursorShape(windata->window, |
135 SetCursorShape(windata->window, curdata->surf, | 136 curdata->surf, |
136 curdata->hotx, curdata->hoty)); | 137 curdata->hotx, |
138 curdata->hoty)); | |
137 //TODO: Check administrative | 139 //TODO: Check administrative |
138 SDL_DFB_CHECKERR(dispdata->layer-> | 140 SDL_DFB_CHECKERR(dispdata->layer->SetCooperativeLevel(dispdata->layer, |
139 SetCooperativeLevel(dispdata->layer, | 141 DLSCL_ADMINISTRATIVE)); |
140 DLSCL_ADMINISTRATIVE)); | 142 SDL_DFB_CHECKERR(dispdata->layer->SetCursorOpacity(dispdata->layer, |
141 SDL_DFB_CHECKERR(dispdata->layer-> | 143 cursor ? 0xC0 : |
142 SetCursorOpacity(dispdata->layer, | 144 0x00)); |
143 cursor ? 0xC0 : 0x00)); | 145 SDL_DFB_CHECKERR(dispdata->layer->SetCooperativeLevel(dispdata->layer, |
144 SDL_DFB_CHECKERR(dispdata->layer-> | 146 DLSCL_SHARED)); |
145 SetCooperativeLevel(dispdata->layer, DLSCL_SHARED)); | |
146 } | 147 } |
147 | 148 |
148 return 0; | 149 return 0; |
149 error: | 150 error: |
150 return -1; | 151 return -1; |
179 DFB_WindowData *windata = (DFB_WindowData *) window->driverdata; | 180 DFB_WindowData *windata = (DFB_WindowData *) window->driverdata; |
180 DFBResult ret; | 181 DFBResult ret; |
181 int cx, cy; | 182 int cx, cy; |
182 | 183 |
183 SDL_DFB_CHECKERR(windata->window->GetPosition(windata->window, &cx, &cy)); | 184 SDL_DFB_CHECKERR(windata->window->GetPosition(windata->window, &cx, &cy)); |
184 SDL_DFB_CHECKERR(dispdata->layer-> | 185 SDL_DFB_CHECKERR(dispdata-> |
185 WarpCursor(dispdata->layer, cx + x, cy + y)); | 186 layer->WarpCursor(dispdata->layer, cx + x, cy + y)); |
186 | 187 |
187 error: | 188 error: |
188 return; | 189 return; |
189 } | 190 } |
190 | 191 |