У меня есть простые данные изображения (32-битный RGBA) size
в массиве символов, и я хочу сделать из них cocos2d-x Texture2D, как показано ниже:
Texture2D * tex = new Texture2D();
tex->initWithData(data, 4*size.width*size.height, Texture2D::PixelFormat::RGBA8888,size.width, size.height, size);
tex->drawAtPoint(Point(offset));
но результирующее изображение размыто (как сжатое изображение в формате jpeg). И входные данные, и текстура (как показано выше) имеют размер size
, и я не делаю никаких преобразований. Я просто поместил код в HelloWorld::draw(Renderer *, const kmMat4&, bool)
во вновь созданный проект. Как я могу получить четкое изображение (точное представление данных)? Любые другие предложения (например, прямое использование буфера кадров и т. д., если таковые существуют) также приветствуются.
Я использую v3.0 в mac os 10.8.x
Изменить: я попытался установить параметры текстуры (GL_NEAREST) сразу после создания Texture2D
и до initWithData
, и ничего не изменилось. Данные и текстура имеют одинаковый размер, поэтому масштабирование в любом случае не должно изменяться... Вот картинка; углы прямоугольников не острые:
Edit2: настройка параметров текстуры (GL_NEAREST) после initWithData
сработала:
...
Texture2D::TexParams tp = {GL_NEAREST, GL_NEAREST, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE};
tex->setTexParameters(tp);
tex->drawAtPoint(Point(offset));
GL_NEAREST
) min/mag. - person Andon M. Coleman   schedule 19.05.2014