내 위젯 (QPainter)의 페인트 기능에서 기본 OpenGL을 사용하지 않아 성능을 향상시킬 수 없습니다. QPainter :: begin/endNativePainting() 함수가 있다는 것을 알았습니다. 저를 도울 수 있습니다. 하지만 그 예제를 찾을 수 없습니다 ... 그 기능이 저비용인지 또는 성능을 저하시키는 데 사용하려고하는지 알고 싶습니까? 2. 내가 사용하는 모든 페인트 기능에서 사용하지 않고, 내가 사용하는 모든 위젯에 대해 일반적으로 beginNativePainting() 및 endNativePainting()을 정의 할 수 있습니다. http://doc.qt.io/qt-4.8/qpainter.html#beginNativePaintingqt 성능 - OpenGL
자체가 상당히 저렴한 비용으로해야한다 기능 있지만이 눈에 띄게 원인이 여전히 있습니다 전화 :가 바로 문서에 몇 가지 기본적인 예제 코드는
이 예제를 보았지만 그것을 사용하는 프로그램이 없습니다 (qt examples/demos/nokia-forum) ... 그리고 정말 유용한 지 궁금하거나 다른 방법이 있습니다. 2. 응용 프로그램에서 위젯을 많이 사용하기 위해 QWidget의 ctor에 beginNativePainting()을 넣고 dtor에 endNativePainting()을 넣을 수 있습니까? ..... 내가 위젯을 많이 가지고 있으면 정말 유용 할까? – dan
Qt 프레임 워크는 QWidget의 paintEvent() 메소드에 대한 매개 변수로 QPainter를 제공합니다.begin/endNativePainting()을 사용하면 (QPainter가 존재하는 한)이 메서드 내에서만 의미가 있습니다. 그래서 당신은 단순히 beginNativePainting()을 ctor()에 호출 할 수 없습니다. 무엇을하고 있는지 확실하지 않다면 QPainter를 사용하여 begin/endNativePainting()을 페인트하고 무시하는 것이 좋습니다. Qt의 API로 해결할 수없는 문제가있는 경우에만 재검토해야 할 시간이 될 것입니다. OpenGL을 사용하는 것이 전부라면 Qt의 그래픽 시스템을 보길 원할 것입니다. – Steffen
성능 향상을 위해 OpenGL을 사용해야합니다 ... 가장 좋은 방법은 무엇인지 알 필요가 없습니다. 위젯 코드에서 많은 부분을 변경하지 않고도 그렇게 할 수 있습니다. – dan