Правила форума
0 Пользователей и 1 Гость просматривают эту тему.
компилятор ругается на "undefined reference to `zoomSurface'"
В таких случаях кроме хидера нужна ещё какая-то либа, гугли каких либ не хватает и подключай их в проект. Не забывай только что code::blocks это не vs, так что подключать либы нужно напрямую, а не через pragma.
Я ж говорю, что уже компилирует нормально после выполнения всех действий,указанных тут http://www.threelas.com/2011/09/how-to-install-sdlgfx-in-codeblocks.html
а вот ротации , масштабирование и примитивы ни каким макаром не проявляются.
SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 128, 128, 128));printmap(); SDL_BlitSurface(bmp, 0, screen, &penis);zoomSurface(screen,4,4,0);//rotozoomSurface(screen,0,3,0);SDL_Flip(screen);
SDL_Surface * zoomSurface (SDL_Surface *src, double zoomx, double zoomy, int smooth)Returns:The new, zoomed surface.
SDL_Surface* screen = SDL_SetVideoMode(256, 192, 8, SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_NOFRAME );
SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 128, 128, 128));printmap();virtScreen = zoomSurface(bmp,4,4,0);SDL_BlitSurface(virtScreen, 0, screen, &penis);SDL_Flip(screen);
И как мне его объявить?
SDL_Surface * virtScreen;
for(int matx=0;matx<255;matx++){for(int maty=0;maty<195;maty++){if(get_pixel(screen,matx,maty)==0){ karta.x=matx*4; karta.y=maty*4;SDL_BlitSurface(pix, 0, vScreen, &karta);}}} SDL_Flip(vScreen);
Uint8 get_pixel( SDL_Surface *surface, int x, int y ){ Uint8 *pixels = (Uint8 *)surface->pixels; return pixels[ ( y * surface->w ) + x ];}
Кстати, почему-то перестаёт увеличивать через некоторое время выполнения программы.(и жрёт БОЛЕЕ ГИГА ОПЕРЫ !!! после чего вырубается)
/** * \brief Perform a fast, low quality, stretch blit between two surfaces of the * same pixel format. * * \note This function uses a static buffer, and is not thread-safe. */extern DECLSPEC int SDLCALL SDL_SoftStretch(SDL_Surface * src, const SDL_Rect * srcrect, SDL_Surface * dst, const SDL_Rect * dstrect);
конечно, утечка памяти же на лицоSDL_FreeSurface(virtScreen);нужен послеSDL_Flip(screen);
вообще, зум с поворотом довольно ресурсоемкая хрень, и не удивительно, что он тормозит.попробуй найти простой зум
время освобождения памяти...дополнительные тормоза.
тут нет угла поворота в качестве передаваемых параметров
да и название самой функции не намекает на поворот.