=================================
=================================
=================================
OpenGL을 쓰고 항시 API를 쓰고 다시 해제해주어야 하는 API들은 해제 해주는것을 잊지 마세요
예로들어 wglMakeCurrent(...)로 들자면
HDC hdc = getHDC();
HGLRC hglrc = getHGLRCRES_GL();
::wglMakeCurrent(hdc, hglrc); //사용
//-----------------------------------------------//{랜더링 코드들..................................................................//}//----------------------------------------------::wglMakeCurrent(NULL, NULL); //::wglMakeCurrent(hdc, NULL); //해제
위와같이 wglMakeCurrent(...) 랜더링 부분에 Api 사용과 해제 부분을 제대로 하지 않으면 다른
위치의 wglMakeCurrent(...) 를 사용시 문제가 생길수 있습니다.
=================================
=================================
=================================
OpenGL화면을 windows에서 메모리 DC에 그릴수는 없는건가요??
OpenGL화면을 windows에서 메모리 DC에 그릴수는 없는건가요??
OpenGL로 간단한 화면을 뿌리는데.. 회면위에 text를 올려야 해서 그냥 TextOut으로 올려보니 Text가 심하게 껌벅거려서 단순한 생각으로 OpenGL을 메모리DC에 그리고
테스트를 출력후에 화면 복사를 할려고 해봤더니...
메모리 DC에는 OpenGL 출력이 되질 않습니다...
여기저기 검색해보니 옛날 글중에 원래 않된다는 말이있는것 같은데...
원래 않되는것이 맞는건가요??? 아니면 OpenGL 화면을 메모리DC에 출력하기 위해서는 다른 처리 방식이 있는건가요???
DevC++ 설치하세요.
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
답변 감사합니다.. 근댕 위 코드는.....
메모리 DC에 OpenGL을 출력 하는코드가 아니라 .. 그냥 윈도우 DC에 출력 하는 코드 아닌가요???
지금도 그냥 윈도우 DC에 출력 하는 방법으로는 OpenGL 자체를 그려서 출력하는것에는 문제가 없는데... 혹시 메모리DC에 출력을 할 수 있을까 하는겁니다.. ㅜ.ㅜ
메모리 DC에 출력을 해보면 그냥 에러는 나지 않는대 그림이 없습니다.... ㅠ.ㅠ 누구 아시는분 않계신가요...
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
이유를 찾았습니다.... ㅠ.ㅠ
질문에 스스로 답하네요..
pfd.dwFlags 지정할때 = PFD_DRAW_TO_BITMAP 을 줘야하는군요..
그런대 여기서 다시 질문드리면 누가 답해주실 까요... ㅠ.ㅠ
찾다 보니.. 윈도우에 바로 그리지 않을 경우에는 하드웨어가속으로 그려지지 않고 CPU에 의해서 그려진다고 하는 말이 있던대...
확실한건가요????
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
http://rageworx.tistory.com/400
http://blog.naver.com/happylamb?Redirect=Log&logNo=30004760781
http://blog.naver.com/sony4u?Redirect=Log&logNo=80069584301
http://cloudlucifer.tistory.com/23
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNO=20&no=753577&ref=753511
http://hompi.sogang.ac.kr/gsmc/digital/Lecture2.PDF
http://cafe.naver.com/aycom/943
http://cafe.naver.com/projectgt/94
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
pfd.dwFlags 지정할때 = PFD_DRAW_TO_BITMAP 을 추가해주셨다고 하셨자나요..
혹시 pfd 설정한 내용좀 알 수 있을까요....
=================================
=================================
=================================
출처: http://rageworx.tistory.com/400
HDC hdcOpenGL;HGLRC hrcOpenGL;HBITMAP hbmOpenGL;void InitOpenGLContext(HWND hWnd, int nWidth, int nHeight){HDC hdcWin = GetDC(hWnd);hdcOpenGL = CreateCompatibleDC(hdcWin);hbmOpenGL = CreateCompatibleBitmap(hdcWin, nWidth, nHeight);SelectObject(hdcOpenGL, hbmOpenGL);ReleaseDC(hWnd, hdcWin);BITMAP bmInfo;GetObject(hbmOpenGL, sizeof(BITMAP), &bmInfo);PIXELFORMATDESCRIPTOR pfd;ZeroMemory(&pfd, sizeof(pfd));pfd.nSize = sizeof(pfd);pfd.nVersion = 1;pfd.dwFlags = PFD_DRAW_TO_BITMAP | PFD_SUPPORT_OPENGL | PFD_SUPPORT_GDI;pfd.iPixelType = PFD_TYPE_RGBA;pfd.cColorBits = (BYTE)bmInfo.bmBitsPixel;pfd.cDepthBits = 8;pfd.iLayerType = PFD_MAIN_PLANE;int nFormat = ChoosePixelFormat(hdcOpenGL, &pfd);SetPixelFormat(hdcOpenGL, nFormat, &pfd);hrcOpenGL = wglCreateContext(hdcOpenGL);wglMakeCurrent(hdcOpenGL, hrcOpenGL);}
HDC hdcWin = GetDC(hWnd);BitBlt(hdcWin,5,5,OPENGL_SURFACE_WIDTH + 5,OPENGL_SURFACE_HEIGHT + 5,hdcOpenGL,0,0,SRCCOPY);ReleaseDC(hWnd, hdcWin);
출처: http://rageworx.tistory.com/400 [자유로운 그날을 위해]
=================================
=================================
=================================
'프로그래밍 관련 > 3D,2D DRAW 관련' 카테고리의 다른 글
3D구현 - 2D 물체 겹침 표현하기 관련 (0) | 2017.07.12 |
---|---|
OpenGL 스텐실 테스트, 그림판 지우기 Painter Eraser 구현 관련 (0) | 2017.07.12 |
[OpenGL] GL_POLYGON_SMOOTH 안티 엘리어싱 적용후 네모난 사각형도형의 POLYGON 또는 GL_QUADS의 텍스쳐에 깨진 대각선 선이 보이는경우 (0) | 2017.06.08 |
OpenGL 안티 얼라이싱(Anti-Aliasing)과 멀티샘플링(MultiSample) 관련 (0) | 2017.06.08 |
OpenGL D3D 그래픽 용어 정리 관련 (0) | 2017.05.30 |
프로젝트 생성 - MultiMedia - OpenGL 생성하면. 바로 만들어 줍니다. ㅇ_ㅇ;;