【发布时间】:2013-12-29 09:44:53
【问题描述】:
我正在尝试将 awesomium 与 opengl(glut 和 cpp)一起使用,但在将网页渲染为纹理时遇到了问题。纹理在 x 和 y 轴上随机移动(每次运行程序时都不同)。图片:
我认为 GL_CLAMP_TO_EDGE 会解决这个问题,但它没有。我做错了什么?
Awesomium 部分:
web_core = WebCore::Initialize(WebConfig());
view = web_core->CreateWebView(WIDTH, HEIGHT);
WebURL url(WSLit(URL));
view->LoadURL(url);
BindMethods(view);
while (view->IsLoading())
web_core->Update();
Sleep(300);
web_core->Update();
surface = (BitmapSurface*)view->surface();
加载纹理的部分:
glBindTexture(GL_TEXTURE_2D, 13);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, WIDTH, HEIGHT, 0,
GL_BGRA_EXT, GL_UNSIGNED_BYTE, surface);
【问题讨论】:
-
找到了解决方案。通过 surface->CopyTo 将表面复制到 unsigned char * 并将其用作纹理。
标签: c++ opengl textures glut awesomium