2362N/A * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved. 430N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 430N/A * This code is free software; you can redistribute it and/or modify it 430N/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 430N/A * particular file as subject to the "Classpath" exception as provided 2362N/A * by Oracle in the LICENSE file that accompanied this code. 430N/A * This code is distributed in the hope that it will be useful, but WITHOUT 430N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 430N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 430N/A * version 2 for more details (a copy is included in the LICENSE file that 430N/A * accompanied this code). 430N/A * You should have received a copy of the GNU General Public License version 430N/A * 2 along with this work; if not, write to the Free Software Foundation, 430N/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 430N/A * References to the "current" context and destination surface. 430N/A // flush the current vertex queue here, just in case 430N/A // end scene for this destination 430N/A // This is a workaround for what apparently is a DWM bug. 430N/A // If the dimensions of the back-buffer don't match the dimensions of 430N/A // the window, Present() will flash the whole window with black. 430N/A // The workaround is to detect this situation and not do a present. 430N/A // It is ok to do so since a repaint event is coming due to the resize that 430N/A // REMIND: this will need to be updated if we switch to creating 430N/A // back-buffers of the size of the client area instead of the whole window 430N/A // (use GetClientRect() instead of GetWindowRect()). 430N/A "win: w=%d h=%d, bb: w=%d h=%d",
430N/A // only offset in windowed mode 430N/A // some boards (Nvidia) have problems with copy strategy and 430N/A // non-null src/dest rectangles in fs mode; unfortunately this 430N/A // means that we'll paint over fs window decorations 430N/A // only mark surfaces belonging to the lost device 430N/A // this surface's device is not lost, do not mark it 430N/A// res = d3dc->SetXorComposite(d3dc, xorPixel); 430N/A "D3DRQ_FlushBuffer: failed to get context");
430N/A // REMIND: we may also want to do EndScene on each 430N/A // render target change so that the GPU can go work on 430N/A // whatever is already in the queue 430N/A "D3DRQ_FlushBuffer: failed to get context");
430N/A // REMIND: does this need to be implemented for D3D? 430N/A // flush just in case there are any pending operations in 430N/A // invalidate the references to the current context and 430N/A // destination surface that are maintained at the native level 430N/A // special no-op (mainly used for achieving 8-byte alignment) 430N/A // BufferedImageOp-related ops 430N/A // we may mark the surface lost repeatedly but that won't do much harm 430N/A // REMIND: EndScene is not really enough to flush the 430N/A // for each flushQueue, because of the blits, which flush 430N/A // REMIND: we need to also handle hard errors here as well, and disable 430N/A // particular context if needed 430N/A * Returns a pointer to the "current" context, as set by the last SET_SURFACES 430N/A * or SET_SCRATCH_SURFACE operation. 430N/A * Returns a pointer to the "current" destination surface, as set by the last 430N/A * SET_SURFACES operation. 430N/A * Resets current context and destination surface. 430N/A * Class: sun_java2d_d3d_D3DRenderQueue 430N/A // just in case we forget to init any new fields 430N/A "D3DRenderQueue_flushBuffer: cannot get direct buffer address");