下記のコードで1 ~ 6までコメントで数字を書きました。
その上で2つ疑問があります。
...
...
...
1). 1 ~ 5の関数はそれぞれwhileループ内に入っているものとそうでないものがあります。
ループ内に入れる関数群は下記コードの1 ~ 3(イベント系)まででいいですか?
それとも、windowのサイズや位置に関する関数までループ内に入れるべきですか?
...
...
...
2). 6について。glfwWaitEvents();とglfwPollEvents();の違いはどこにありますか。
一応、質問2コードのような関数をglfwPollEvent状態でmousepressEventトリガーより実行して見たところ、1クリックで描画されたオブジェクトが点滅しました。
waitEventsの場合、Press状態を維持しなければ描画されないという結果でした。
以上のことから、"常に変化する描画をする"ためのPollEventsではないかと仮説を立てていますが正しいですか?
また、これが正しい場合は"点滅する"ということが気がかりです。
一応これも複数回blue関数を実行すると(PollEvents状態で)点滅は見えなくなりました。
すなわち、点滅をなくしたい場合は複数回実行するのも"あり"ってことですか?
C++
1 2/// 質問1 3 4#include <iostream> 5#incl... 6.. 7.. 8.. 9 10int main(){ 11 GLFWwindow* window; 12 13 glfwInit(); 14 window = glfwCreateWindow(windowW, windowH, "んんん、これで良い。", NULL, NULL); 15 glfwMakeContextCurrent(window); 16 17 glfwSetWindowSizeCallback(window, window_size_callback); //4 18 glfwSetWindowPos(window, windowX, windowY); //5 19 20 while (!glfwWindowShouldClose(window)) { 21 glfwSetKeyCallback(window, key_callback); //1 22 glfwSetCursorPosCallback(window, cursor_position_callback); //2 23 glfwSetMouseButtonCallback(window, mouse_button_callback); //3 24 glfwSwapBuffers(window); 25 glfwWaitEvents(); //6 26 } 27 28 glfwTerminate(); 29 return 0; 30} 31
C++
1 2/// 質問2 3 4void blue(void) { 5 6 glClear(GL_COLOR_BUFFER_BIT); 7 8 glBegin(GL_POLYGON); 9 glColor4d(0.0, 0.0, 1.0, 0.3); 10 glVertex2f(-0.1, 0.9); 11 glVertex2f(-0.9, -0.9); 12 glVertex2f(0.3, -0.9); 13 glVertex2f(0.9, 0.9); 14 glEnd(); 15 16 glFinish(); 17 18}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。