void Texture::loadFromSurface(SDL_Surface* surface) { SDL_Surface* resizedSurface = NULL; SDL_Rect area; if (surface == NULL) { return; } int newWidth = NearestPowerOf2(_width); int newHeight = NearestPowerOf2(_height); int bpp; Uint32 Rmask, Gmask, Bmask, Amask; SDL_PixelFormatEnumToMasks( SDL_PIXELFORMAT_ABGR8888, &bpp, &Rmask, &Gmask, &Bmask, &Amask ); resizedSurface = SDL_CreateRGBSurface(0, newWidth, newHeight, bpp, Rmask, Gmask, Bmask, Amask ); area.x = 0; area.y = 0; area.w = surface->w; area.h = surface->h; SDL_SetSurfaceAlphaMod( surface, 0xFF ); SDL_SetSurfaceBlendMode( surface, SDL_BLENDMODE_NONE ); SDL_BlitSurface(surface, &area, resizedSurface, &area); glBindTexture(GL_TEXTURE_2D, _textureID); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, resizedSurface->w, resizedSurface->h, 0, GL_RGBA, GL_UNSIGNED_BYTE, resizedSurface->pixels); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); _textureWidth = resizedSurface->w; _textureHeight = resizedSurface->h; SDL_FreeSurface(resizedSurface); }
void QTrkComputedConfig::Update() { int roi = width / 2; zlut_maxradius = roi*zlut_roi_coverage; float zlut_perimeter = 2*3.141593f*zlut_maxradius; zlut_angularsteps = zlut_perimeter*zlut_angular_coverage; zlut_radialsteps = (zlut_maxradius-zlut_minradius)*zlut_radial_coverage; qi_maxradius = roi*qi_roi_coverage; float qi_perimeter = 2*3.141593f*qi_maxradius; qi_angstepspq = qi_perimeter*qi_angular_coverage/4; qi_radialsteps = (qi_maxradius-qi_minradius)*qi_radial_coverage; qi_radialsteps = NearestPowerOf2(qi_radialsteps); }