나는 윈도우에서 프로그래밍 오전 + +. 화면에 DIB를 그리는 금식 방법이 무엇인지 알고 싶습니다. 이미지가 늘어날 수 있습니다.어떤 금식 방법 Windows에서 화면에 큰 DIB를 그릴 수
StretchDIBits보다 빠르며 SetDIBitsToDevice보다 빠릅니다. StretchBits보다 빠릅니다.
높은 신축성을 지니고 있습니다.
감사합니다.
나는 윈도우에서 프로그래밍 오전 + +. 화면에 DIB를 그리는 금식 방법이 무엇인지 알고 싶습니다. 이미지가 늘어날 수 있습니다.어떤 금식 방법 Windows에서 화면에 큰 DIB를 그릴 수
StretchDIBits보다 빠르며 SetDIBitsToDevice보다 빠릅니다. StretchBits보다 빠릅니다.
높은 신축성을 지니고 있습니다.
감사합니다.
API 함수 StretchDIBits
은 하드웨어를 활용할 것이라고 생각합니다. 그것 이외에, BitBlt
/StretchBlt
을보십시오.
또한 StretchDIBits
에 관한 일부 other questions이 있습니다.이 경로를 사용하면 살펴볼 수 있습니다.
이 방법으로는 만족스럽지 않지만 그 밖의 다른 정보는 없습니다. CPU가 그렇게 많이 할 수 있습니다. 가능한 경우 작업 결과를 캐시하고 있는지 확인하십시오. updating what you need. 그래픽 카드를 최대한 활용하려면 OpenGL 또는 DirectX을보십시오.
Windows 소스 코드를 들여다 보았을 때, Stretchblt는 1980 년대 중반 여름 인턴에 의해 작성되었으며 결코 고쳐지지 않았습니다. 같은 비효율적 인 코드가 모든 버전의 Windows에 적용되었습니다. 몇 가지 Windows 모바일 장치에서 StretchBlt는 2D 하드웨어 가속을 사용하지만 데스크톱 Windows는 사용하지 않습니다. 데스크톱 윈도우에서 DirectDraw를 사용하여 2D 하드웨어 가속을 사용하고 빠른 블리트를 얻으십시오. 내 데스크톱 비디오 게임 제품에는 메모리 버퍼의 비트를 늘린 다음 비트 블릿을 호출하여 디스플레이에 복사하는 스트레치 블렛 코드가 있으며 StretchBlt를 호출하는 것보다 훨씬 빠릅니다.
StretchBlts가 실패한 주된 원인은 코드가 캐쉬/캐쉬되지 않은 메모리의 속도를 완전히 감지하지 못하고 캐쉬가 이미지를 늘릴 때 캐쉬를 처리한다는 것입니다.
많은 감사! StretchDIBits는 제가 사용했던 것입니다. 좀 더 빠른 API를 원한다. – user25749
사실 대부분의 질문은 나 자신이 묻습니다. 여전히 느립니다 ~~ – user25749