本文整理汇总了C++中SDL_FreeSurface函数的典型用法代码示例。如果您正苦于以下问题:C++ SDL_FreeSurface函数的具体用法?C++ SDL_FreeSurface怎么用?C++ SDL_FreeSurface使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了SDL_FreeSurface函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SDL_FreeSurface
GUI_Font::~GUI_Font()
{
if (freefont)
SDL_FreeSurface(fontStore);
}
示例2: sdl2_init_font
static void sdl2_init_font(sdl2_video_t *vid, const char *font_path,
unsigned font_size)
{
if (!g_settings.video.font_enable)
return;
if (font_renderer_create_default(&vid->font_driver, &vid->font_data,
*font_path ? font_path : NULL, font_size))
{
int r = g_settings.video.msg_color_r * 255;
int g = g_settings.video.msg_color_g * 255;
int b = g_settings.video.msg_color_b * 255;
r = r < 0 ? 0 : (r > 255 ? 255 : r);
g = g < 0 ? 0 : (g > 255 ? 255 : g);
b = b < 0 ? 0 : (b > 255 ? 255 : b);
vid->font_r = r;
vid->font_g = g;
vid->font_b = b;
}
else
{
RARCH_WARN("[SDL]: Could not initialize fonts.\n");
return;
}
const struct font_atlas *atlas = vid->font_driver->get_atlas(vid->font_data);
SDL_Surface *tmp = SDL_CreateRGBSurfaceFrom(atlas->buffer, atlas->width,
atlas->height, 8, atlas->width,
0, 0, 0, 0);
SDL_Color colors[256];
int i;
for (i = 0; i < 256; ++i)
{
colors[i].r = colors[i].g = colors[i].b = i;
colors[i].a = 255;
}
SDL_Palette *pal = SDL_AllocPalette(256);
SDL_SetPaletteColors(pal, colors, 0, 256);
SDL_SetSurfacePalette(tmp, pal);
SDL_SetColorKey(tmp, SDL_TRUE, 0);
vid->font.tex = SDL_CreateTextureFromSurface(vid->renderer, tmp);
if (vid->font.tex)
{
vid->font.w = atlas->width;
vid->font.h = atlas->height;
vid->font.active = true;
SDL_SetTextureBlendMode(vid->font.tex, SDL_BLENDMODE_ADD);
}
else
RARCH_WARN("[SDL]: Failed to initialize font texture: %s\n", SDL_GetError());
SDL_FreePalette(pal);
SDL_FreeSurface(tmp);
}
示例3: gl_prepareSurface
/**
* @brief Prepares the surface to be loaded as a texture.
*
* @param surface to load that is freed in the process.
* @return New surface that is prepared for texture loading.
*/
SDL_Surface* gl_prepareSurface( SDL_Surface* surface )
{
SDL_Surface* temp;
int potw, poth;
SDL_Rect rtemp;
#if ! SDL_VERSION_ATLEAST(1,3,0)
Uint32 saved_flags;
#endif /* ! SDL_VERSION_ATLEAST(1,3,0) */
/* Make size power of two. */
potw = gl_pot(surface->w);
poth = gl_pot(surface->h);
if (gl_needPOT() && ((potw != surface->w) || (poth != surface->h))) {
/* we must blit with an SDL_Rect */
rtemp.x = rtemp.y = 0;
rtemp.w = surface->w;
rtemp.h = surface->h;
/* saves alpha */
#if SDL_VERSION_ATLEAST(1,3,0)
SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_NONE);
/* create the temp POT surface */
temp = SDL_CreateRGBSurface( 0, potw, poth,
surface->format->BytesPerPixel*8, RGBAMASK );
#else /* SDL_VERSION_ATLEAST(1,3,0) */
saved_flags = surface->flags & (SDL_SRCALPHA | SDL_RLEACCELOK);
if ((saved_flags & SDL_SRCALPHA) == SDL_SRCALPHA) {
SDL_SetAlpha( surface, 0, SDL_ALPHA_OPAQUE );
SDL_SetColorKey( surface, 0, surface->format->colorkey );
}
/* create the temp POT surface */
temp = SDL_CreateRGBSurface( SDL_SRCCOLORKEY,
potw, poth, surface->format->BytesPerPixel*8, RGBAMASK );
#endif /* SDL_VERSION_ATLEAST(1,3,0) */
if (temp == NULL) {
WARN("Unable to create POT surface: %s", SDL_GetError());
return 0;
}
if (SDL_FillRect( temp, NULL,
SDL_MapRGBA(surface->format,0,0,0,SDL_ALPHA_TRANSPARENT))) {
WARN("Unable to fill rect: %s", SDL_GetError());
return 0;
}
/* change the surface to the new blitted one */
SDL_BlitSurface( surface, &rtemp, temp, &rtemp);
SDL_FreeSurface( surface );
surface = temp;
#if ! SDL_VERSION_ATLEAST(1,3,0)
/* set saved alpha */
if ( (saved_flags & SDL_SRCALPHA) == SDL_SRCALPHA )
SDL_SetAlpha( surface, 0, 0 );
#endif /* ! SDL_VERSION_ATLEAST(1,3,0) */
}
return surface;
}
示例4: freeImage
void SDL::freeImage(SDL_Surface* image)
{
if (image) SDL_FreeSurface(image);
}
示例5: main
//.........这里部分代码省略.........
btTransform(btQuaternion(0, 0, 0, 1), btVector3(0, -1, 0)));
// The first and last parameters of the following constructor are the mass and
// inertia of the ground. Since the ground is static, we represent this by
// filling these values with zeros. Bullet considers passing a mass of zero
// equivalent to making a body with infinite mass - it is immovable.
btRigidBody::btRigidBodyConstructionInfo
groundRigidBodyCI(0, groundMotionState, groundShape, btVector3(0, 0, 0));
btRigidBody* groundRigidBody = new btRigidBody(groundRigidBodyCI);
//=> Ground Creation
//=> Sphere Creation
// The shape that we will let fall from the sky is a sphere with a radius
// of 1 metre.
btCollisionShape* fallShape = new btSphereShape(1);
// Adding the falling sphere is very similar. We will place it 50m above the
// ground.
btDefaultMotionState* fallMotionState =
new btDefaultMotionState(btTransform(btQuaternion(0, 0, 0, 1),
btVector3(0, 50, 0)));
// Since it's dynamic we will give it a mass of 1kg. I can't remember how to
// calculate the inertia of a sphere, but that doesn't matter because Bullet
// provides a utility function.
btScalar mass = 1;
btVector3 fallInertia(0, 0, 0);
fallShape->calculateLocalInertia(mass, fallInertia);
// Construct the rigid body just like before, and add it to the world.
btRigidBody::btRigidBodyConstructionInfo fallRigidBodyCI(mass,
fallMotionState, fallShape, fallInertia);
btRigidBody* fallRigidBody = new btRigidBody(fallRigidBodyCI);
//=> Sphere Creation
// Add the ground and sphere to the world.
dynamicsWorld->addRigidBody(fallRigidBody);
dynamicsWorld->addRigidBody(groundRigidBody);
//Physics
bool go = true;
while (go){
SDL_Event incomingEvent;
while (SDL_PollEvent(&incomingEvent))
{
switch (incomingEvent.type)
{
case SDL_QUIT:
go = false;
break;
}
}
//Logic
//Physics
dynamicsWorld->stepSimulation(1 / 60.f, 10);
btTransform trans;
fallRigidBody->getMotionState()->getWorldTransform(trans);
//std::cout << "sphere height: " << trans.getOrigin().getY() << std::endl;
//Physics
//SDL
//Clear screen
SDL_FillRect(screen, NULL, 0x000000);
//Apply the background to the screen
apply_surface(0, 0, background, screen);
apply_surface(320, 0, background, screen);
apply_surface(0, 240, background, screen);
apply_surface(320, 240, background, screen);
//Apply the message to the screen
//apply_surface(180, 140, message, screen);
apply_surface(50, -(trans.getOrigin().getY()), sphere, screen);
//apply_surface(50, 50, sphere, screen);
std::cout << "X: " << trans.getOrigin().getX() << " Y: " << trans.getOrigin().getY() << std::endl;
//SDL
//Update
SDL_Flip(screen);
//Wait 2 seconds
SDL_Delay( 50 );
}
//Free the surfaces
SDL_FreeSurface( message );
SDL_FreeSurface( background );
//Quit SDL
SDL_Quit();
return 0;
}
示例6: CommonInit
//.........这里部分代码省略.........
if (!state->windows) {
fprintf(stderr, "Out of memory!\n");
return SDL_FALSE;
}
for (i = 0; i < state->num_windows; ++i) {
char title[1024];
if (state->num_windows > 1) {
SDL_snprintf(title, SDL_arraysize(title), "%s %d",
state->window_title, i + 1);
} else {
SDL_strlcpy(title, state->window_title, SDL_arraysize(title));
}
state->windows[i] =
SDL_CreateWindow(title, state->window_x, state->window_y,
state->window_w, state->window_h,
state->window_flags);
if (!state->windows[i]) {
fprintf(stderr, "Couldn't create window: %s\n",
SDL_GetError());
return SDL_FALSE;
}
if (SDL_SetWindowDisplayMode(state->windows[i], &fullscreen_mode) < 0) {
fprintf(stderr, "Can't set up fullscreen display mode: %s\n",
SDL_GetError());
return SDL_FALSE;
}
if (state->window_icon) {
SDL_Surface *icon = LoadIcon(state->window_icon);
if (icon) {
SDL_SetWindowIcon(state->windows[i], icon);
SDL_FreeSurface(icon);
}
}
SDL_ShowWindow(state->windows[i]);
if (!state->skip_renderer
&& (state->renderdriver
|| !(state->window_flags & SDL_WINDOW_OPENGL))) {
m = -1;
if (state->renderdriver) {
SDL_RendererInfo info;
n = SDL_GetNumRenderDrivers();
for (j = 0; j < n; ++j) {
SDL_GetRenderDriverInfo(j, &info);
if (SDL_strcasecmp(info.name, state->renderdriver) ==
0) {
m = j;
break;
}
}
if (m == n) {
fprintf(stderr,
"Couldn't find render driver named %s",
state->renderdriver);
return SDL_FALSE;
}
}
if (SDL_CreateRenderer
(state->windows[i], m, state->render_flags) < 0) {
fprintf(stderr, "Couldn't create renderer: %s\n",
SDL_GetError());
return SDL_FALSE;
示例7:
VistaLoop::~VistaLoop(void){
if( this->pProxyEntidad != NULL ) delete this->pProxyEntidad;
if( this->pantalla != NULL ) SDL_FreeSurface(this->pantalla);
ImageLoader::getInstance().cerrarSDL();
}
示例8: ReSaveImage
bool ReSaveImage(wchar_t* filename, char* buff, unsigned long len)
{
if(!buff || !len)
return false;
SDL_RWops* fp = NULL;
fp = SDL_RWFromMem(buff, len);
if(fp == NULL)
{
printf("ImageEx: Failed to read memory\n");
if(fp)
{
SDL_RWclose(fp);
}
return false;
}
SDL_Surface *back = nullptr;
back = SDL_LoadBMP_RW(fp, 0);
if(back == nullptr)
{
printf("ImageEx: Failed to load from memory\n");
if(fp)
{
SDL_RWclose(fp);
}
return false;
}
BITMAPINFOHEADER *bmi = (BITMAPINFOHEADER*)(buff + sizeof(BITMAPFILEHEADER));
Uint32 rmask, gmask, bmask, amask;
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
rmask = 0xff000000;
gmask = 0x00ff0000;
bmask = 0x0000ff00;
amask = 0x000000ff;
#else
rmask = 0x000000ff;
gmask = 0x0000ff00;
bmask = 0x00ff0000;
amask = 0xff000000;
#endif
SDL_Surface *out = SDL_CreateRGBSurface(0, back->w, back->h, bmi->biBitCount,rmask, gmask, bmask, amask);
SDL_Rect backRect;
backRect.x = 0;
backRect.y = 0;
backRect.w = back->w;
backRect.h = back->h;
SDL_BlitSurface(back, &backRect, out, NULL);
std::string OutPut = UnicodeToUtf8(filename);
SDL_SaveBMP(out, OutPut.c_str());
SDL_FreeSurface(back);
SDL_RWclose(fp);
return true;
}
示例9: SDL_FreeSurface
view::ChatView::~ChatView() {
SDL_FreeSurface(closeButton);
delete modelChat;
}
示例10: sdl_update
static
void sdl_update (sdl_t *sdl)
{
SDL_Surface *s;
Uint32 rmask, gmask, bmask;
terminal_t *trm;
SDL_Rect dst;
const unsigned char *buf;
unsigned dw, dh;
unsigned ux, uy, uw, uh;
unsigned fx, fy;
unsigned bx, by;
trm = &sdl->trm;
trm_get_scale (&sdl->trm, trm->w, trm->h, &fx, &fy);
dw = fx * trm->w;
dh = fy * trm->h;
bx = sdl->border[0] + sdl->border[2];
by = sdl->border[1] + sdl->border[3];
if (sdl_set_window_size (sdl, dw + bx, dh + by, 0)) {
return;
}
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
rmask = 0x00ff0000;
gmask = 0x0000ff00;
bmask = 0x000000ff;
#else
rmask = 0x000000ff;
gmask = 0x0000ff00;
bmask = 0x00ff0000;
#endif
buf = trm_scale (trm, trm->buf, trm->w, trm->h, fx, fy);
ux = fx * trm->update_x;
uy = fy * trm->update_y;
uw = fx * trm->update_w;
uh = fy * trm->update_h;
s = SDL_CreateRGBSurfaceFrom (
(char *) buf + 3 * (dw * uy + ux), uw, uh, 24, 3 * dw,
rmask, gmask, bmask, 0
);
dst.x = ux + sdl->border[0];
dst.y = uy + sdl->border[1];
if (s == NULL) {
return;
}
if (SDL_BlitSurface (s, NULL, sdl->scr, &dst) != 0) {
fprintf (stderr, "sdl: blit error\n");
}
SDL_FreeSurface (s);
SDL_Flip (sdl->scr);
}
示例11: main
int main(int argc, char **argv)
{
SDL_Window *window;
SDL_GLContext context;
SDL_Event evt;
MOJOSHADER_glContext *shaderContext;
MOJOSHADER_effect *effect;
MOJOSHADER_glEffect *glEffect;
SDL_Surface *bitmap;
GLuint texture;
GLuint buffers[2];
FILE *fileIn;
unsigned int fileLen;
unsigned char *effectData;
unsigned int passes;
MOJOSHADER_effectStateChanges changes;
Uint8 run = 1;
/* Create the window and GL context */
SDL_Init(SDL_INIT_VIDEO);
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_DEBUG_FLAG);
window = SDL_CreateWindow(
"Sprite Test",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
SCREEN_WIDTH,
SCREEN_HEIGHT,
SDL_WINDOW_OPENGL
);
context = SDL_GL_CreateContext(window);
shaderContext = MOJOSHADER_glCreateContext(
MOJOSHADER_PROFILE,
GetGLProcAddress,
NULL,
NULL,
NULL,
NULL
);
MOJOSHADER_glMakeContextCurrent(shaderContext);
/* ARB_debug_output setup */
glDebugMessageCallbackARB(GLDebugCallback, NULL);
glDebugMessageControlARB(
GL_DONT_CARE,
GL_DONT_CARE,
GL_DONT_CARE,
0,
NULL,
GL_TRUE
);
/* Set up the viewport, create the texture/buffer data */
glViewport(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, 0.0f);
bitmap = SDL_LoadBMP("../Sprite.bmp");
glTexImage2D(
GL_TEXTURE_2D,
0,
GL_RGB,
bitmap->w,
bitmap->h,
0,
GL_BGR,
GL_UNSIGNED_BYTE,
bitmap->pixels
);
SDL_FreeSurface(bitmap);
glGenBuffersARB(2, buffers);
glBindBufferARB(GL_ARRAY_BUFFER, buffers[0]);
glBufferDataARB(
GL_ARRAY_BUFFER,
sizeof(vertexstruct_t) * 4,
vertex_array,
GL_STATIC_DRAW
);
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER, buffers[1]);
glBufferDataARB(
GL_ELEMENT_ARRAY_BUFFER,
12,
index_array,
GL_STATIC_DRAW
);
/* Load and read the SpriteBatch effect file */
//.........这里部分代码省略.........
示例12: SDL_CreateRGBSurfaceFrom
//! presents a surface in the client area
bool CIrrDeviceSDL::present(video::IImage* surface, void* windowId, core::rect<s32>* srcClip)
{
SDL_Surface *sdlSurface = SDL_CreateRGBSurfaceFrom(
surface->lock(), surface->getDimension().Width, surface->getDimension().Height,
surface->getBitsPerPixel(), surface->getPitch(),
surface->getRedMask(), surface->getGreenMask(), surface->getBlueMask(), surface->getAlphaMask());
if (!sdlSurface)
return false;
SDL_SetAlpha(sdlSurface, 0, 0);
SDL_SetColorKey(sdlSurface, 0, 0);
sdlSurface->format->BitsPerPixel=surface->getBitsPerPixel();
sdlSurface->format->BytesPerPixel=surface->getBytesPerPixel();
if ((surface->getColorFormat()==video::ECF_R8G8B8) ||
(surface->getColorFormat()==video::ECF_A8R8G8B8))
{
sdlSurface->format->Rloss=0;
sdlSurface->format->Gloss=0;
sdlSurface->format->Bloss=0;
sdlSurface->format->Rshift=16;
sdlSurface->format->Gshift=8;
sdlSurface->format->Bshift=0;
if (surface->getColorFormat()==video::ECF_R8G8B8)
{
sdlSurface->format->Aloss=8;
sdlSurface->format->Ashift=32;
}
else
{
sdlSurface->format->Aloss=0;
sdlSurface->format->Ashift=24;
}
}
else if (surface->getColorFormat()==video::ECF_R5G6B5)
{
sdlSurface->format->Rloss=3;
sdlSurface->format->Gloss=2;
sdlSurface->format->Bloss=3;
sdlSurface->format->Aloss=8;
sdlSurface->format->Rshift=11;
sdlSurface->format->Gshift=5;
sdlSurface->format->Bshift=0;
sdlSurface->format->Ashift=16;
}
else if (surface->getColorFormat()==video::ECF_A1R5G5B5)
{
sdlSurface->format->Rloss=3;
sdlSurface->format->Gloss=3;
sdlSurface->format->Bloss=3;
sdlSurface->format->Aloss=7;
sdlSurface->format->Rshift=10;
sdlSurface->format->Gshift=5;
sdlSurface->format->Bshift=0;
sdlSurface->format->Ashift=15;
}
SDL_Surface* scr = (SDL_Surface* )windowId;
if (!scr)
scr = Screen;
if (scr)
{
if (srcClip)
{
SDL_Rect sdlsrcClip;
sdlsrcClip.x = srcClip->UpperLeftCorner.X;
sdlsrcClip.y = srcClip->UpperLeftCorner.Y;
sdlsrcClip.w = srcClip->getWidth();
sdlsrcClip.h = srcClip->getHeight();
SDL_BlitSurface(sdlSurface, &sdlsrcClip, scr, NULL);
}
else
SDL_BlitSurface(sdlSurface, NULL, scr, NULL);
SDL_Flip(scr);
}
SDL_FreeSurface(sdlSurface);
surface->unlock();
return (scr != 0);
}
示例13: SDL_FreeSurface
FontEngine::~FontEngine() {
SDL_FreeSurface(ttf);
TTF_CloseFont(font);
TTF_Quit();
}
示例14: clean_up
void clean_up()
{
SDL_FreeSurface( image );
SDL_Quit();
}
示例15: SetVideoMode
//.........这里部分代码省略.........
if (renderer != NULL)
{
SDL_DestroyRenderer(renderer);
// all associated textures get destroyed
texture = NULL;
texture_upscaled = NULL;
}
renderer = SDL_CreateRenderer(screen, -1, renderer_flags);
if (renderer == NULL)
{
I_Error("Error creating renderer for screen window: %s",
SDL_GetError());
}
// Important: Set the "logical size" of the rendering context. At the same
// time this also defines the aspect ratio that is preserved while scaling
// and stretching the texture into the window.
if (aspect_ratio_correct || integer_scaling)
{
SDL_RenderSetLogicalSize(renderer,
SCREENWIDTH,
actualheight);
}
// Force integer scales for resolution-independent rendering.
#if SDL_VERSION_ATLEAST(2, 0, 5)
SDL_RenderSetIntegerScale(renderer, integer_scaling);
#endif
// Blank out the full screen area in case there is any junk in
// the borders that won't otherwise be overwritten.
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
// Create the 8-bit paletted and the 32-bit RGBA screenbuffer surfaces.
if (screenbuffer != NULL)
{
SDL_FreeSurface(screenbuffer);
screenbuffer = NULL;
}
if (screenbuffer == NULL)
{
screenbuffer = SDL_CreateRGBSurface(0,
SCREENWIDTH, SCREENHEIGHT, 8,
0, 0, 0, 0);
SDL_FillRect(screenbuffer, NULL, 0);
}
// Format of argbbuffer must match the screen pixel format because we
// import the surface data into the texture.
if (argbbuffer != NULL)
{
SDL_FreeSurface(argbbuffer);
argbbuffer = NULL;
}
if (argbbuffer == NULL)
{
SDL_PixelFormatEnumToMasks(pixel_format, &unused_bpp,
&rmask, &gmask, &bmask, &amask);
argbbuffer = SDL_CreateRGBSurface(0,
SCREENWIDTH, SCREENHEIGHT, 32,
rmask, gmask, bmask, amask);
SDL_FillRect(argbbuffer, NULL, 0);
}
if (texture != NULL)
{
SDL_DestroyTexture(texture);
}
// Set the scaling quality for rendering the intermediate texture into
// the upscaled texture to "nearest", which is gritty and pixelated and
// resembles software scaling pretty well.
SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "nearest");
// Create the intermediate texture that the RGBA surface gets loaded into.
// The SDL_TEXTUREACCESS_STREAMING flag means that this texture's content
// is going to change frequently.
texture = SDL_CreateTexture(renderer,
pixel_format,
SDL_TEXTUREACCESS_STREAMING,
SCREENWIDTH, SCREENHEIGHT);
// Initially create the upscaled texture for rendering to screen
CreateUpscaledTexture(true);
}