2015-01-29 12 views
5

स्केलिंग मैं सी में एक परियोजना ++ एसडीएल (सरल Directmedia लेयर) का उपयोग करने पर काम कर रहा हूँ लेकिन जब मैं स्क्रीन के लिए एक SDL_Texture आकर्षित यह धुंधला है eventhough यह स्केल नहीं किया गया बिना धुंधला छवियों को खींचता है।एसडीएल

कैसे छवि भरी हुई है:

SDL_Surface* loadedSurface = IMG_Load("image.png"); 
SDL_Texture* gImage = SDL_CreateTextureFromSurface(gRenderer, loadedSurface); 

कैसे छवि को स्क्रीन करने के लिए तैयार की है:

SDL_Rect renderQuad = { x, y, width, height }; 
SDL_RenderCopy(gRenderer, gImage , NULL, &renderQuad); 

छवि देखें, बाएँ कार्यक्रम में है और सही मूल है:

enter image description here

एक पैरामीटर एक सेट करने के लिए भूल गया वहाँ है? और क्या यह सामान्य है कि एसडीएल ऐसा करता है?

मैं एक Windows 8.1 64-बिट मशीन पर एसडीएल 2.0 32-बिट का उपयोग कर रहा हूँ। SDL_CreateTextureFromSurface करने के लिए अपने फोन की

+0

लगता छवि की तरह antialiased कर दिया गया है है। –

+0

शायद यह रेंडर स्केल गुणवत्ता संकेत के कारण है। अधिक जानकारी यहाँ: http://forums.libsdl.org/viewtopic.php?t=9500 – fmcato

+0

आप किसी भी 'SDL_GL_ *' अपने कोड में कहीं भी काम करता है का उपयोग कर रहे हैं? –

उत्तर

1

आगे बुला की कोशिश:

SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "0"); 

SDL Wiki के अनुसार यह प्रभावित करना चाहिए कैसे SDL_CreateTextureFromSurface कॉल सतह को जोड़। "0" का परिणाम निकटतम पड़ोसी को आपके द्वारा देखे जाने वाले धुंधले प्रभाव को दूर करना चाहिए।

+0

पहले से ही यह कोशिश की है, कुछ भी नहीं बदलता है। शायद क्योंकि बनावट स्केल नहीं की जाती है। इसे किसी अन्य मूल्य में बदलना कुछ भी नहीं बदलता है। – Oli414

-1

मैं इस बहुत देर हो चुकी हो सकता है पता है, लेकिन आप नहीं

SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "nearest");

यह काम करता है का उपयोग कर धुंधला हासिल कर सकते हैं, मैं परीक्षण किया यह

संबंधित मुद्दे