#include <fv_ViewDoubleBuffering.h>
Classes | |
struct | ViewDrawFunctionArguments |
Public Member Functions | |
FV_ViewDoubleBuffering (FV_View *pView, bool suspendDirectDrawing, bool callDrawOnlyAtTheEnd) | |
~FV_ViewDoubleBuffering () | |
void | beginDoubleBuffering () |
void | endDoubleBuffering () |
bool | getCallDrawOnlyAtTheEnd () |
void | recordViewDrawCall (UT_sint32 x, UT_sint32 y, UT_sint32 width, UT_sint32 height, bool bDirtyRunsOnly, bool bClip) |
Private Member Functions | |
void | callUnifiedDraw () |
void | redrawEntireScreen () |
bool | noRecordedDrawCalls () |
void | initMostExtArgs () |
void | extendDrawArgsIfNeccessary (UT_Rect *thisCallRect, const UT_Rect *clipRectFromGraphics, bool bDirtyRunsOnly) |
Private Attributes | |
GR_Painter * | m_pPainter |
FV_View * | m_pView |
bool | m_bCallDrawOnlyAtTheEnd |
bool | m_bSuspendDirectDrawing |
ViewDrawFunctionArguments | mostExtArgs |
FV_ViewDoubleBuffering::FV_ViewDoubleBuffering | ( | FV_View * | pView, | |
bool | suspendDirectDrawing, | |||
bool | callDrawOnlyAtTheEnd | |||
) |
References initMostExtArgs().
FV_ViewDoubleBuffering::~FV_ViewDoubleBuffering | ( | ) |
References endDoubleBuffering().
void FV_ViewDoubleBuffering::beginDoubleBuffering | ( | ) |
References GR_Painter::beginDoubleBuffering(), XAP_App::getApp(), FV_View::getGraphics(), m_bCallDrawOnlyAtTheEnd, m_bSuspendDirectDrawing, m_pPainter, m_pView, FV_View::registerDoubleBufferingObject(), GR_Painter::suspendDrawing(), UT_ASSERT, and UT_NOT_IMPLEMENTED.
Referenced by FV_View::_drawOrClearBetweenPositions(), FV_FrameEdit::_mouseDrag(), FV_FrameEdit::abortDrag(), FV_FrameEdit::deleteFrame(), FV_VisualDragText::mouseCut(), FV_VisualDragText::mouseRelease(), and FV_FrameEdit::mouseRelease().
void FV_ViewDoubleBuffering::callUnifiedDraw | ( | ) | [private] |
References FV_View::_draw(), FV_ViewDoubleBuffering::ViewDrawFunctionArguments::bDirtyRunsOnly, FV_ViewDoubleBuffering::ViewDrawFunctionArguments::callCount, FV_ViewDoubleBuffering::ViewDrawFunctionArguments::clipRect, FV_ViewDoubleBuffering::ViewDrawFunctionArguments::fullRect, FV_View::getGraphics(), UT_Rect::height, UT_Rect::left, m_pView, mostExtArgs, noRecordedDrawCalls(), GR_Graphics::setClipRect(), UT_Rect::top, UT_DEBUGMSG, and UT_Rect::width.
Referenced by endDoubleBuffering().
void FV_ViewDoubleBuffering::endDoubleBuffering | ( | ) |
References callUnifiedDraw(), GR_Painter::endDoubleBuffering(), XAP_App::getApp(), m_bCallDrawOnlyAtTheEnd, m_bSuspendDirectDrawing, m_pPainter, m_pView, GR_Painter::resumeDrawing(), and FV_View::unregisterDoubleBufferingObject().
Referenced by FV_VisualDragText::mouseCut(), FV_VisualDragText::mouseRelease(), and ~FV_ViewDoubleBuffering().
void FV_ViewDoubleBuffering::extendDrawArgsIfNeccessary | ( | UT_Rect * | thisCallRect, | |
const UT_Rect * | clipRectFromGraphics, | |||
bool | bDirtyRunsOnly | |||
) | [private] |
References FV_ViewDoubleBuffering::ViewDrawFunctionArguments::bDirtyRunsOnly, FV_ViewDoubleBuffering::ViewDrawFunctionArguments::callCount, FV_ViewDoubleBuffering::ViewDrawFunctionArguments::clipRect, FV_ViewDoubleBuffering::ViewDrawFunctionArguments::fullRect, mostExtArgs, and UT_Rect::unionRect().
Referenced by recordViewDrawCall().
bool FV_ViewDoubleBuffering::getCallDrawOnlyAtTheEnd | ( | ) |
References m_bCallDrawOnlyAtTheEnd.
Referenced by FV_View::_draw().
void FV_ViewDoubleBuffering::initMostExtArgs | ( | ) | [private] |
References FV_ViewDoubleBuffering::ViewDrawFunctionArguments::callCount, and mostExtArgs.
Referenced by FV_ViewDoubleBuffering().
bool FV_ViewDoubleBuffering::noRecordedDrawCalls | ( | ) | [private] |
References FV_ViewDoubleBuffering::ViewDrawFunctionArguments::callCount, and mostExtArgs.
Referenced by callUnifiedDraw().
void FV_ViewDoubleBuffering::recordViewDrawCall | ( | UT_sint32 | x, | |
UT_sint32 | y, | |||
UT_sint32 | width, | |||
UT_sint32 | height, | |||
bool | bDirtyRunsOnly, | |||
bool | bClip | |||
) |
References extendDrawArgsIfNeccessary(), GR_Graphics::getClipRect(), FV_View::getGraphics(), and m_pView.
Referenced by FV_View::_draw().
void FV_ViewDoubleBuffering::redrawEntireScreen | ( | ) | [private] |
References FV_View::_draw(), AV_View::getWindowHeight(), AV_View::getWindowWidth(), and m_pView.
bool FV_ViewDoubleBuffering::m_bCallDrawOnlyAtTheEnd [private] |
Referenced by beginDoubleBuffering(), endDoubleBuffering(), and getCallDrawOnlyAtTheEnd().
bool FV_ViewDoubleBuffering::m_bSuspendDirectDrawing [private] |
Referenced by beginDoubleBuffering(), and endDoubleBuffering().
GR_Painter* FV_ViewDoubleBuffering::m_pPainter [private] |
Referenced by beginDoubleBuffering(), and endDoubleBuffering().
FV_View* FV_ViewDoubleBuffering::m_pView [private] |
Referenced by beginDoubleBuffering(), callUnifiedDraw(), endDoubleBuffering(), recordViewDrawCall(), and redrawEntireScreen().
Referenced by callUnifiedDraw(), extendDrawArgsIfNeccessary(), initMostExtArgs(), and noRecordedDrawCalls().