메뉴 건너뛰기

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

보니까 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 최근 수정일
25 흥크립트로 만든 예제 4 file 대슬 1723   2007-12-02 2008-03-17 04:37
 
24 반복문 예제 [4] file 대슬 1833   2007-12-01 2008-03-17 04:37
 
23 흥크립트에서 반복문 실행하기 (덤추가) [9] 대슬 1790   2007-12-01 2008-03-17 04:37
[엔] 0 ^0:연산하는부분 //원하는 연산 내용을 자유롭게 적으면 됩니다. [엔] [엔]+1 ^1 [체크] ([엔]==10)?2:0 //↑[엔]의 값이 10인지 아닌지를 판별하고 10이면 [체크]에 1이, //10이 아니면 [체크]에 0이 들어갑니다. ([엔]==10)에서 10부분에 다른 수를 //...  
22 흥크립트로 만든 예제 2 [2] file 대슬 2118   2007-12-01 2008-03-17 04:37
 
21 흥크립트로 만들 때 알아둘 기본 사항 [6] 대슬 1693   2007-12-01 2008-03-17 04:37
common.mlc, Global.mlc 를 제외한 다른 모든 mlc 파일들은 스크립트 파일 이름과 일치하게 만들어야 읽을 수 있습니다. 예를 들어 MAIN.dlg (또는 txt) 에 대한 mlc 파일은 MAIN.mlc 로 저장해야 스크립트에서 읽어서 씁니다. MAIN에서 대슬랑미.dlg 로 갈아...  
20 흥크립트로 만든 예제 [1] file 대슬 2051   2007-12-01 2008-03-17 04:37
 
19 질문 2가지+1 [2] file Wonder 1964   2007-11-30 2008-03-17 04:37
 
18 혼돈형에게 질문! [3] 장펭돌 1851   2007-11-28 2008-03-17 04:37
만화를 그릴때, 우선 손으로 그리지 않습니까 그럼 그린뒤에 스캔해서 컴퓨터로 옮긴뒤에 펜으로 그려진 선을 잘 보정해 줘야 채색이 가능할텐데, 어떻게 선을 다시 컴퓨터로 그려주나여 그냥, 노가다로 마우스로 원래 펜으로 그린 선을 따라서 그려주는 겅미?...  
17 혼돈형한테 질문 (페인트샾 관련) [2] file 장펭돌 939   2007-11-19 2008-03-17 04:37
 
16 흥크립트 Ver0.9 변수 안의 변수 기능 [2] 혼돈 2208   2007-10-16 2008-03-17 04:37
상당히 고급기능이라 꼭 알 필요는 없지만, 잘 활용하면 배열이나 구조체 비슷하게 활용 가능합니다. 참고로 []를 쓰는 숫자변수와 {}를 쓰는 문자변수는 서로 다른 테이블을 쓰므로 이름이 겹쳐도 상관없습니다. [변수X] 1 [변수[변수X]] 10 {변수} "변수" {...  
15 흥크립트 0.9 새 기능 소개 [3] file 혼돈 2290   2007-10-15 2008-03-17 04:37
 
14 질문요.C++ [7] 질문자01 2729   2007-05-10 2008-04-03 05:32
도대체 파라미터가 뭔지 모르겠어요.  
13 스크립트 질문좀 하겠습니다....이벤트에 대한것!! [2] 여유 1859   2007-04-23 2008-03-17 04:37
Class Quick_status < Game_Player 아니면 Class Quick_status < Game_Event 어떤걸로 하는것이 옳은 선택일까요 그리고 이벤트의 X,Y좌표 이벤트의 Screen_x,y좌표(화면 XY좌표) 이벤트의 ID 이벤트의 이름 이것들을 나타낼 수 있는 방법을 알려주세요 예) a...  
12 똥똥배의 게임대회 이야기(4) [1] 혼돈 2881   2007-02-10 2011-02-11 12:52
4. 공모전도 커뮤니케이션 게임을 만들기 전에 먼저 생각해야 하는 것은 게임을 하는 사람들입니다. 그래서 게임회사라면 시장조사가 가장 먼저 해야 할 일입니다. 회사에서 만든 게임을 얼마나 많은 게이머들이 즐길지 알고 예상되는 수익을 계산하고 거기에 ...  
11 똥똥배의 게임대회 이야기(3) [1] 혼돈 3007   2007-02-08 2011-02-11 12:53
3. 아마추어다운 게임이란 무엇인가? 아마추어는 자유롭습니다. 자신이 원한다면 무엇이든 표현할 수 있습니다. (심하게 비윤리적이라면 문제가 되겟지만) 하지만 프로는 그렇지 못합니다. 일단 상업성 때문에 '돈이 되는' 게임을 만들어야 하고, 수많은 사람...  
10 똥똥배의 게임대회 이야기(2) [2] 혼돈 2816   2007-02-07 2008-03-17 04:37
2. 100KB 공모전의 추억 1회 규칙이 10M로 제한 된 것은 과거 100KB 공모전이 담겨있어서 입니다. 과거 100KB 공모전이라고 있었는데, 그 제한된 용량을 이용해서 다양한 작품이 나왔었죠. 그 중에 우수상을 탔던 것이 '삭제 되었수다'로서 오히려 제한된 용량...  
9 똥똥배의 게임대회 이야기(1) 혼돈 2953   2007-02-06 2008-03-17 04:37
지금부터 제 이야기를 잘 들어 두시는 게 수상의 열쇠가 될지도 모릅니다. 제가 끝판 보스도 아니고, 공지 내놓고 마감일까지 기다리는 것은 지루하니 이런 저런 이야기를 들려 드리도록 하죠. 1. 지금 여러분이 해야 할 일 지금 개학인데 왜 하필 시작하냐는 ...  
8 [질문]알만툴 게임 [1] 허클베리핀 1974   2006-12-28 2008-03-17 04:37
처음 키면 ascll 로고뜨고 eb!회사 로고뜨는 나오는거 그림 어케바꾸나욤?? * 똥똥배님에 의해서 게시물 이동되었습니다 (2008-03-11 14:24)  
7 여러분 질문있어요. 성심성의껏좀 알려주세요 흑흑 [6] 케르메스 2022   2006-02-11 2008-03-17 04:37
sw = 0; for (j=2; j<WWT; j++) { if ((WWT%j) == 0) { sw = 1; } } if(sw ==1) { cout << "WWT는 정수입니다" } if(sw ==0) { cout << "WWT는 정수가 아닙니다" } -------------------------------------------------------------- 이건 변수인 WWT가 정수인...  
6 액션알피지 원거리 무기 질문 [8] 아리포 1741   2006-01-18 2008-03-17 04:37
원거리 무기를 가까이에서쏘면 연속으로 발사됩니다 계속 ;; 아주빠르게 이거 어떻게 고침 * 똥똥배님에 의해서 게시물 이동되었습니다 (2008-03-11 14:24)