Моя цель — включить сглаживание в приложении C++ win32, использующем powerVR SDK, в Visual Studio 2015. Поиск в Интернете информации о том, как это сделать, дал мне некоторые идеи об использовании egl
, поэтому я попробовал этот метод.
` EGLint attribs[] =
{
EGL_LEVEL, 0,
EGL_NATIVE_RENDERABLE, 0,
EGL_BUFFER_SIZE, 0,
EGL_DEPTH_SIZE, 16,
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
EGL_SAMPLE_BUFFERS, 1,
EGL_SAMPLES, 4,
EGL_NONE
};
attribs[1] = 16; // 16x anti-aliasing
EGLConfig config = new EGLConfig[1];
EGLint num_config;
bool result = eglChooseConfig(eglGetDisplay(EGL_DEFAULT_DISPLAY), attribs, &config, 1, &num_config);
if (!result)
{
this->setExitMessage("Antialiasing has not configured properly");
return pvr::Result::Enum::InvalidData;
}`
Он компилируется и работает отлично, без ошибок, но линии по-прежнему чертовски зазубренные — сглаживание не применяется.
Что я делаю неправильно в приведенном выше коде?
Каков правильный путь?
attribs[1] = 16
не делают того, что вы хотите.attribs
— это просто массив int (EGLint), поэтому вы устанавливаете 2-й элемент равным16
, например, запрашивая EGL_LEVEL=16. Вероятно, это не поддерживается. - person MuertoExcobito   schedule 02.11.2016