메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

보니까 backbuffer에 그림을 붙이던데
backbuffer가 배경 버퍼니까 바로 화면에 출력되는건가요?
그런데 그걸 직접 쓰면 MFC의 DC처럼 깜박임과 속도저하가 오는건 아니죠?ㅡ,.ㅡ;
추가로 LoadPicture로 불러온 그림을 다시 안불러온것처럼 되돌리는건 없나요?
조회 수 :
4223
등록일 :
2008.06.28
20:19:13 (*.50.69.16)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=214461

똥똥배

2008.06.28
22:27:47
(*.239.144.2)
문D라이브에서는 더블버퍼링이 아닌 플립 방식을 씁니다.
플립 방식에 대해 혹시 모르실까 설명 드리자면
A와 B의 화면이 있다면
A를 보여주고 있을 때는 B에다 그리고, 다 그렸으면 보여주는 화면을 B로 교체하는 방식입니다.
즉, 2화면을 서로 교대로 보여주면서 안 보여주는 쪽에 그림을 그리는 방식이죠.
대부분 다이렉트X를 쓰면 이런 식으로 그래픽을 출력합니다. 더블버퍼링보다 훨씬 빠르기 때문이죠.
더블 버퍼링에서는 다 그린 후 그것을 화면에 올리기 위해 한 번 더 그려주는 데,
이 한 번 더 그리는 일이 줄어들게 되죠.

그리고 플립이 이루어지는 순간은 jdd-Render()가 실행되는 순간입니다.
Render 전에는 어떤 그리기 명령을 실행해도 Render를 시키기 전까지는 아무것도 표시되지 않습니다.
왜냐면 보이지 않는 다른 면에 그리고 있기 때문이죠.

그리고 LoadPicture로 불러온 그림을 없애는 것은 DeletePicture입니다.
좀 더 훌륭한 프로그램을 하시려면 메모리 관리자를 띄어놓고
메모리 사용량을 확인하는 게 좋을 겁니다.

문D라이브 문제로 CCommand 쪽은 메모리 해체가 약간 문제 있는 듯 한데
그것은 차후 수정할 수준입니다.
(일단 컴퓨터 다운 시킬 수준의 누수도 아니고, 어느 정도 선에 가면 자동으로 릴리즈 되는 듯)

A.미스릴

2008.06.29
05:36:06
(*.50.69.16)
누수라면 new를 쓴 후 delete를 안쓰고 제거되거나 delete를 안쓰고 new를 넣을때 메모리에 남는 데이터인가요?

똥똥배

2008.06.29
07:06:23
(*.193.78.136)
네, 그거죠. 프로그램 규모가 커지면 이것이 문제라서 초기부터 잘 잡아 둬야 합니다.
(솔직히 구문 에러는 문제도 아니죠. 프로그램 수준이 되면 모두 메모리 싸움입니다.)
일단 memory leak이라고 해서 프로그램이 종료된 뒤까지 delete가 안 된 메모리는 컴파일러가 알려줍니다.
이건 특수한 방법으로 찾으면 일단 해결은 가능하죠.
지금 제가 겪고 있는 문제는 그거랑 조금 별개라고 해야할까?
라이브러리 특성인지 메모리를 어느 정도 선을 넘어야 릴리즈 시키는데
제가 프로그램에는 결벽증 수준으로 꼼꼼한 성격이라서 제가 계산하지 않은 메모리를 어디서 쓰는 게 있으면
참지 못하고 다 찾아내서 최적화를 시켜야 됩니다. 지금 그게 문제라는 거지, 사실 memory leak은 없습니다.
(특히 요즘 NDS 프로그램 하다보니 메모리에는 신경질적으로 신경 쓰게 되는군요.)

Warning이 많은 것은 이게 VC++ 2003인가 이전 버전으로 만들어 진 탓도 있고
제작한 것은 문진섭님이라서 제가 손대서 오히려 나빠지는 것 보다 낫다고 생각해서 놔둔겁니다.
사실 워닝도 전부 없애버리고 싶어요. 그래서 저번에 건드렸다가 이상하게 되서 안정성있는 지금 이대로 그냥 놔두고 있습니다.

어쨌든 결론은 문라이브는 제가 몇년간 써서 안정성은 보장되어 있습니다.
List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜sort 최근 수정일
85 문D라이브로 더블드래곤을 만들자(6) [2] file 똥똥배 3114   2008-04-23 2008-04-25 05:01
 
84 문D라이브로 더블드래곤을 만들자(5) [6] file 똥똥배 3072   2008-04-21 2008-04-24 03:23
 
83 C++ 데이터의 바이트 용량 임의로 정의할수 없나영 [1] A.미스릴 3059   2008-04-21 2008-04-21 07:18
int는 4바이트로 정해져 있는데 약간의 수만 있으면 되는 수도 있는데 괜히 많은 숫자를 사용해서 메모리를 많이 사용하는 건 아닐지 ㅡㅡ; 3바이트라던지 4비트라던지... 데이터의 바이트 사용량을 임의로 바꿀수 없나요  
82 문D라이브로 더블드래곤을 만들자(4) [2] file 똥똥배 3213   2008-04-20 2008-04-21 07:20
 
81 문D라이브로 더블드래곤을 만들자(3) file 똥똥배 3430   2008-04-18 2008-04-18 18:27
 
80 문D라이브로 더블드래곤을 만들자(2) [6] file 똥똥배 3612   2008-04-18 2013-11-23 08:43
 
79 VC++ 2008 Express Edition에서 문D라이브 링크 [2] A.미스릴 13090   2008-04-17 2014-04-15 17:28
SDK도 최신버전으로 깔아주었고 도구 설정도 적절하게 했습니다 모든 셋팅이 완료되고 링크를 해보니까 아래와 같은 문장이 쭉쭉나오는군요 warning은 굉장히 많이 나오는데 실제로 컴파일을 막아버린 부분은 LINK : fatal error LNK1104: 'LIBC.lib' 파일을 ...  
78 문D라이브로 더블드래곤을 만들자(1) [2] file 똥똥배 4479   2008-04-16 2008-04-17 08:29
 
77 임의의 점이 다각형 내부에 있는지 검사하는 함수 똥똥배 5358   2008-04-14 2008-04-14 02:21
수학도 기하학도 허접한 제가 짠 거라서 허접하지만 넓은 아량으로 봐 주십시오. struct Point { double x; double y; }; bool LineIn(Point p1, Point p2, Point p3) { double top, bottom; //위 아래 범위 결정 if(p1.y < p2.y) { top = p1.y; bottom = p2.y...  
76 명령문 질문드립니다. [1] X-tra 2244   2008-03-26 2008-03-27 00:40
변해서 게시판 찾기 어려울것 같았는데 이상하게 한번에 찾아 버렸네요. 연구소라고 적혀 있어서요... 이번건 질문이라고 하기에는 좀 애매합니다. 예전에 흥크립트의 모든 명령어가 적혀 있던 파일을 본 기억이 납니다. 하지만 아무리 찾아도 없더군요. 블로...  
75 저는 사실 이걸 잘 못해요. [3] 앟랄 2282   2008-03-26 2008-04-18 07:45
알만툴 액알. 원리가 도저히 이해가 안 갑니다. 그림넣어서 설명해주세요. 그 뭐시기 그냥 근접공격만 일단. 나중가서 원거리를 합시다.  
74 OgreOde 사용기 똥똥배 3184   2008-03-25 2008-03-25 21:37
OgreSDK 버전 1.4.7 OgreOde 버전 0.95(아마도) 사실 오우거 엔진 쓴지도 얼마 안 되고 물리엔진은 처음 만져봤습니다. 처음에 Ogre Wiki에 나온대로 따라서 만들었는데 crateCube.mesh와 plane.mesh 때문에 에러가 나서 바닥은 직접 만들고 crateCube 대신 오...  
73 웹 프로그래밍을 배우려고 합니다. [2] Kadalin 2171   2008-03-22 2008-03-22 23:37
사용하는 형식에 따라 꽤 분야가 많은 것으로 알고 있습니다. 각각의 특징을 설명해 주세요.  
72 흥크립트 클릭명령 질문입니다. [1] 카시 2009   2008-03-18 2008-03-18 20:18
으음 제가 몇가지 실험해본 결과. 1. @영역선택과 @클릭 명령은 한 스크립트 내에서 혼합해서 쓸 수 없다. 2. @영역선택은 ~영역선택으로 쓸 수 없다. (대화창과 동시 처리 불가능) 3. @클릭명령 사용시 오른쪽 버튼을 누르면 세이브화면이 뜬다. 이 세가진데...  
71 흥크립트 키입력 질문 [1] A.미스릴 2363   2008-03-15 2008-03-17 04:37
키 클릭을 누르고 누른상태로 있는것도 인식할 수 있나영? 어떻게 하나요 ㅡ,.ㅡ  
70 그림 출력의 순서를 알고 싶습니다. [3] X-tra 2466   2008-03-12 2008-03-17 04:37
제 글이 연구소로 가서 이번에는 신경써서 제목을 적었습니다 ㅡ.ㅡb 채색을 제외하면 전투도 70%정도 완성되었는데 자잘한 버그가 발생해서요. 제 스스로 알아 내려 했지만 확실하게 하기 위해서 물어 봅니다. 정확히 어떤 그림이 앞에 출력이 되고 어떤 그...  
69 그러고보니, 흥크립트에서.. [1] 장펭돌 1693   2008-03-10 2008-03-17 04:37
왠지는 모르겠으나, 저희집 컴퓨터에서는 효과음은 들리지만, 배경음악이 안들렸었습니다.. (엉? 왠지 예전에도 말한적 있는것 같기두 하고...) 아무튼, 어째서 그런겁니까...? 사실 그래서 공룡돌의 추리쩡 배경음악.. 저는 들을수가 없어서 다른분들한테 들...  
68 안녕하세요~ 질문하러 왔습니다. [6] X-tra 1894   2008-03-09 2008-03-17 04:37
소리재생에 문제가 생겨서 질문드립니다. 제가 대화가 넘어갈때마다 소리를 재생하기 위해서 @소리 1, "MAIN\SE\스킵.ogg" 대화가나불나불~ @소리재생 1 를 메모장에 적었습니다. 그런데 소리가 나오지 않는겁니다. 버그리포트에는 "사운드 파일을 찾을 수 없...  
67 흥크립트 원인불명 버그... [3] file 네모상자 738   2008-02-16 2008-03-17 04:37
 
66 흥크립트 AVI 재생.. [2] 장펭돌 1851   2008-02-14 2008-03-17 04:37
흥크립트 AVI 재생시에 가끔 전체화면으로 게임을 할때, 재생하는부분에서 갑자기 창모드 화면 크기로 영상이 나온 다음 전체화면인 게임은 아래로 최소화 되어 있을때가 가끔있는데요... (이것도 어떨때는 그러고 또 어떤때는 안그럼) 이거 뭐 대체 왜이러는...