3261N/A * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. 0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A * This code is free software; you can redistribute it and/or modify it 0N/A * under the terms of the GNU General Public License version 2 only, as 2362N/A * published by the Free Software Foundation. Oracle designates this 0N/A * particular file as subject to the "Classpath" exception as provided 2362N/A * by Oracle in the LICENSE file that accompanied this code. 0N/A * This code is distributed in the hope that it will be useful, but WITHOUT 0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A * version 2 for more details (a copy is included in the LICENSE file that 0N/A * accompanied this code). 0N/A * You should have received a copy of the GNU General Public License version 0N/A * 2 along with this work; if not, write to the Free Software Foundation, 0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2362N/A * or visit www.oracle.com if you need additional information or have any 0N/A =
"Ushort 555 RGB Pixmap with 1-bit transp";
0N/A =
"Ushort 565 RGB Pixmap with 1-bit transp";
0N/A // Bitmap surface types 0N/A // If a screen magnifier is present, don't attempt to use DGA 0N/A // Only verbose if they use the full string "true" 0N/A // Only verbose if they use the full string "false" 0N/A * Returns true if we can use DGA on any of the screens 775N/A * Returns true if shared memory pixmaps are available 0N/A // true iff prop==true, false otherwise 775N/A // EXA based drivers tend to place pixmaps in VRAM, slowing down readbacks. 775N/A // Don't use pixmaps if dga is available, 775N/A // or we are local and shared memory Pixmaps are not available. 0N/A * Note: this is thread-safe since x11txpipe is the 0N/A * second of the two pipes constructed in makePipes(). 0N/A * In the rare case we are racing against another 0N/A * thread making new pipes, setting lazypipe is a 0N/A * safe alternative to waiting for the other thread. 0N/A // Do this to init textpipe correctly; we will override the 0N/A // other non-text pipes below 0N/A // REMIND: we should clean this up eventually instead of 0N/A // having this work duplicated. 0N/A /* equating to OFF which it is for us */ 0N/A // Use X11 pipe even if DGA is available since DGA 0N/A // text slows everything down when mixed with X11 calls 0N/A // Remind: may use Xrender for these when composite is 0N/A // copy as above, or if remote X11. 0N/A // Use X11 pipe even if DGA is available since DGA 0N/A // text slows everything down when mixed with X11 calls 0N/A // This is needed for AA text. 0N/A // Note that even an X11TextRenderer can dispatch AA text 0N/A // if a GlyphVector overrides the AA setting. 0N/A // We use getRenderLoops() rather than setting solidloops 0N/A // directly so that we get the appropriate loops in XOR mode. 1884N/A // assert(some pipe will always be a LoopBasedPipe) 0N/A * Method for instantiating a Window SurfaceData 0N/A * Method for instantiating a Pixmap SurfaceData (offscreen) 2370N/A// * Initializes the native Ops pointer. 2370N/A// private native void initOps(X11ComponentPeer peer, 2370N/A// X11GraphicsConfig gc, int depth); 0N/A * Returns a boolean indicating whether or not a copyArea from 0N/A * the given rectangle source coordinates might be incomplete 0N/A * and result in X11 GraphicsExposure events being generated 0N/A * This method allows the SurfaceData copyArea method to determine 0N/A * if it needs to set the GraphicsExposures attribute of the X11 GC 0N/A * to True or False to receive or avoid the events. 0N/A * @return true if there is any chance that an XCopyArea from the 0N/A * given source coordinates could produce any X11 0N/A int x,
int y,
int w,
int h,
int dx,
int dy)
0N/A // 4517321: We will always use ThreeByteBgr for 24 bpp 0N/A // surfaces, regardless of the pixel masks reported by 0N/A // X11. Despite ambiguity in the X11 spec in how 24 bpp 0N/A // surfaces are treated, it appears that the best 0N/A // SurfaceType for these configurations (including 0N/A // some Matrox Millenium and ATI Radeon boards) is 0N/A // Fall through for 32 bit case 0N/A // fix for 4352984: Riva128 on Linux 0N/A * The following methods and variables are used to keep the Java-level 0N/A * context state in sync with the native X11 GC associated with this 0N/A * X11SurfaceData object. 0N/A // assert SunToolkit.isAWTLockHeldByCurrentThread(); 0N/A // validate composite 0N/A * Returns destination Component associated with this SurfaceData. 0N/A * Need this since the surface data is created with 0N/A * the color model of the target GC, which is always 0N/A * opaque. But in SunGraphics2D.blitSD we choose loops 0N/A * based on the transparency on the source SD, so 0N/A * it could choose wrong loop (blit instead of blitbg, 0N/A * We need to invalidate the surface before disposing the 0N/A * native Drawable and GC. This way if an application tries 0N/A * to render to an already flushed X11SurfaceData, we will notice 0N/A * in the validate() method above that it has been invalidated, 0N/A * and we will avoid using those native resources that have 0N/A * already been disposed. 0N/A * Returns destination Image associated with this SurfaceData.