Fix first frame being black
This commit is contained in:
parent
5ad433c267
commit
7b39bd81c0
11
src/main.cpp
11
src/main.cpp
@ -177,8 +177,6 @@ static bool recreate_window_pixmap(Display *dpy, Window window_id,
|
|||||||
// GLX_Y_INVERTED_EXT, (int)GLX_DONT_CARE,
|
// GLX_Y_INVERTED_EXT, (int)GLX_DONT_CARE,
|
||||||
None};
|
None};
|
||||||
|
|
||||||
// Note that mipmap is generated even though its not used.
|
|
||||||
// glCopyImageSubData fails if the texture doesn't have mipmap.
|
|
||||||
const int pixmap_attribs[] = {GLX_TEXTURE_TARGET_EXT,
|
const int pixmap_attribs[] = {GLX_TEXTURE_TARGET_EXT,
|
||||||
GLX_TEXTURE_2D_EXT,
|
GLX_TEXTURE_2D_EXT,
|
||||||
GLX_TEXTURE_FORMAT_EXT,
|
GLX_TEXTURE_FORMAT_EXT,
|
||||||
@ -265,11 +263,6 @@ static bool recreate_window_pixmap(Display *dpy, Window window_id,
|
|||||||
pixmap.texture_height, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
|
pixmap.texture_height, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
|
||||||
int err2 = glGetError();
|
int err2 = glGetError();
|
||||||
fprintf(stderr, "error: %d\n", err2);
|
fprintf(stderr, "error: %d\n", err2);
|
||||||
glCopyImageSubData(pixmap.texture_id, GL_TEXTURE_2D, 0, 0, 0, 0,
|
|
||||||
pixmap.target_texture_id, GL_TEXTURE_2D, 0, 0, 0, 0,
|
|
||||||
pixmap.texture_width, pixmap.texture_height, 1);
|
|
||||||
int err = glGetError();
|
|
||||||
fprintf(stderr, "error: %d\n", err);
|
|
||||||
// glXBindTexImageEXT(dpy, pixmap.glx_pixmap, GLX_FRONT_EXT, NULL);
|
// glXBindTexImageEXT(dpy, pixmap.glx_pixmap, GLX_FRONT_EXT, NULL);
|
||||||
// glGenerateTextureMipmapEXT(glxpixmap, GL_TEXTURE_2D);
|
// glGenerateTextureMipmapEXT(glxpixmap, GL_TEXTURE_2D);
|
||||||
|
|
||||||
@ -1007,7 +1000,7 @@ int main(int argc, char **argv) {
|
|||||||
double frame_start = glfwGetTime();
|
double frame_start = glfwGetTime();
|
||||||
glfwPollEvents();
|
glfwPollEvents();
|
||||||
|
|
||||||
/*glClear(GL_COLOR_BUFFER_BIT);*/
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
if (XCheckTypedWindowEvent(dpy, src_window_id, ConfigureNotify, &e) && e.xconfigure.window == src_window_id) {
|
if (XCheckTypedWindowEvent(dpy, src_window_id, ConfigureNotify, &e) && e.xconfigure.window == src_window_id) {
|
||||||
// Window resize
|
// Window resize
|
||||||
if(e.xconfigure.width != window_width || e.xconfigure.height != window_height) {
|
if(e.xconfigure.width != window_width || e.xconfigure.height != window_height) {
|
||||||
@ -1093,6 +1086,7 @@ int main(int argc, char **argv) {
|
|||||||
window_pixmap.texture_id, GL_TEXTURE_2D, 0, 0, 0, 0,
|
window_pixmap.texture_id, GL_TEXTURE_2D, 0, 0, 0, 0,
|
||||||
window_pixmap.target_texture_id, GL_TEXTURE_2D, 0, 0, 0, 0,
|
window_pixmap.target_texture_id, GL_TEXTURE_2D, 0, 0, 0, 0,
|
||||||
window_pixmap.texture_width, window_pixmap.texture_height, 1);
|
window_pixmap.texture_width, window_pixmap.texture_height, 1);
|
||||||
|
glfwSwapBuffers(window);
|
||||||
// int err = glGetError();
|
// int err = glGetError();
|
||||||
// fprintf(stderr, "error: %d\n", err);
|
// fprintf(stderr, "error: %d\n", err);
|
||||||
|
|
||||||
@ -1112,7 +1106,6 @@ int main(int argc, char **argv) {
|
|||||||
memcpy_struct.Height = frame->height;
|
memcpy_struct.Height = frame->height;
|
||||||
cuMemcpy2D(&memcpy_struct);
|
cuMemcpy2D(&memcpy_struct);
|
||||||
// res = cuCtxPopCurrent(&old_ctx);
|
// res = cuCtxPopCurrent(&old_ctx);
|
||||||
glfwSwapBuffers(window);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
frame->pts = frame_count;
|
frame->pts = frame_count;
|
||||||
|
Loading…
Reference in New Issue
Block a user