From bd87c6c4f286b6c8d5a59ee3a485759b51685491 Mon Sep 17 00:00:00 2001 From: "spider%netscape.com" Date: Thu, 16 Jul 1998 22:02:36 +0000 Subject: [PATCH] Performance Optimization: Do not create a writeable GC on every instantiation of a rendering context. Re-use the old one. --- gfx/src/motif/nsRenderingContextUnix.cpp | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/gfx/src/motif/nsRenderingContextUnix.cpp b/gfx/src/motif/nsRenderingContextUnix.cpp index c426ee2f3294..7c9e942b373a 100644 --- a/gfx/src/motif/nsRenderingContextUnix.cpp +++ b/gfx/src/motif/nsRenderingContextUnix.cpp @@ -126,10 +126,6 @@ nsRenderingContextUnix :: ~nsRenderingContextUnix() // Destroy the front buffer and it's GC if one was allocated for it if (nsnull != mFrontBuffer) { - if (mFrontBuffer != mRenderingSurface) { - ::XFreeGC(mFrontBuffer->display, - mFrontBuffer->gc); - } delete mFrontBuffer; } @@ -233,14 +229,6 @@ nsresult nsRenderingContextUnix :: CommonInit() nsresult nsRenderingContextUnix :: SelectOffScreenDrawingSurface(nsDrawingSurface aSurface) { - - if (mFrontBuffer == mRenderingSurface) { - XGCValues values; - mFrontBuffer->gc = ::XCreateGC(mRenderingSurface->display, - mRenderingSurface->drawable, - nsnull, &values); - } - mRenderingSurface = (nsDrawingSurfaceUnix *) aSurface; return NS_OK; } @@ -675,7 +663,7 @@ nsDrawingSurface nsRenderingContextUnix :: CreateDrawingSurface(nsRect *aBounds) surface->drawable = p ; surface->display = mRenderingSurface->display; - surface->gc = mFrontBuffer->gc; + surface->gc = mRenderingSurface->gc; surface->visual = mRenderingSurface->visual; surface->depth = mRenderingSurface->depth; @@ -1062,7 +1050,7 @@ nsresult nsRenderingContextUnix :: CopyOffScreenBits(nsRect &aBounds) ::XCopyArea(mRenderingSurface->display, mRenderingSurface->drawable, mFrontBuffer->drawable, - mFrontBuffer->gc, + mRenderingSurface->gc, 0,0, aBounds.width, aBounds.height, 0,0); return NS_OK;