В OSX (с собственным разрешением 2560 x 1600) Gloss отображает все с коэффициентом увеличения 2x.При назначении размера окна 300 x 300 для функции отображения создается окно 600 x 600. Весь контент в этом окне также в два раза больше (в каждом измерении), независимо от того, нарисован ли он с помощью Gloss или загружен как спрайт (I ').Я использую Juicy для этого).Уменьшение содержимого не дает такого же чистого результата, как при отображении в реальном собственном разрешении.Есть ли способ сделать рендер Gloss в полном родном разрешении?
Я все еще новичок в Gloss и надеюсь, что не пропустил ничего очевидного.
Вот код ...
module Main where
import Graphics.Gloss
import Graphics.Gloss.Juicy
import Codec.Picture
main :: IO ()
main = loadJuicy "someimg.png" >>= maybe ( print "Nope" ) displayImg
displayImg :: Picture -> IO ()
displayImg p = display ( InWindow "Image" ( 300, 300 ) ( 100, 100 ) ) white ( pictures [ p, translate 32 32 $ circleSolid 4 ] )
... и соответствующий рендер:
![Screenshot of the render](https://i.stack.imgur.com/q8Nns.png)
Обновление: Кажется, этоОбщая проблема с дисплеями OpenGL и Retina (фактически способ, которым пиксели OSX рассчитываются внутри).Поскольку, как я понимаю, Gloss на самом деле не разрешает низкоуровневый доступ, я предполагаю, что это невозможно исправить.
Обновление 2: Это, похоже, особая проблема с GLUT какбазовый бэкэнд для Gloss.Восстановление Gloss, включающее GLFW и отключающее GLUT, должно решить эту проблему.