mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2026-01-15 21:11:43 +01:00
Compare commits
1 Commits
jbr21.1148
...
batrdmi/tr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
44f519d8c4 |
@@ -109,12 +109,6 @@ else
|
||||
WITH_BUNDLED_FREETYPE=""
|
||||
fi
|
||||
|
||||
if [ "$bundle_type" == "lb" ]; then
|
||||
WITH_VULKAN=""
|
||||
else
|
||||
WITH_VULKAN="--with-vulkan"
|
||||
fi
|
||||
|
||||
REPRODUCIBLE_BUILD_OPTS="--with-source-date=$SOURCE_DATE_EPOCH
|
||||
--with-hotspot-build-time=$BUILD_TIME
|
||||
--with-copyright-year=$COPYRIGHT_YEAR
|
||||
|
||||
@@ -35,7 +35,7 @@ function do_configure {
|
||||
--with-version-opt=b"$build_number" \
|
||||
--with-boot-jdk="$BOOT_JDK" \
|
||||
--enable-cds=yes \
|
||||
$WITH_VULKAN \
|
||||
--with-vulkan \
|
||||
$DISABLE_WARNINGS_AS_ERRORS \
|
||||
$STATIC_CONF_ARGS \
|
||||
$REPRODUCIBLE_BUILD_OPTS \
|
||||
@@ -113,11 +113,6 @@ case "$bundle_type" in
|
||||
jbr_name_postfix="_${bundle_type}"
|
||||
do_maketest=1
|
||||
;;
|
||||
"lb")
|
||||
do_reset_changes=1
|
||||
jbr_name_postfix="_${bundle_type}"
|
||||
do_maketest=1
|
||||
;;
|
||||
"nomod" | "")
|
||||
bundle_type=""
|
||||
;;
|
||||
|
||||
@@ -32,6 +32,13 @@ function do_configure {
|
||||
--build=x86_64-unknown-linux-gnu \
|
||||
--openjdk-target=x86_64-unknown-linux-gnu"
|
||||
fi
|
||||
|
||||
if [ -n "${JCEF_BUILD_LEGACY:-}" ]; then
|
||||
WITH_VULKAN=""
|
||||
else
|
||||
WITH_VULKAN="--with-vulkan"
|
||||
fi
|
||||
|
||||
sh configure \
|
||||
$WITH_DEBUG_LEVEL \
|
||||
--with-vendor-name="$VENDOR_NAME" \
|
||||
@@ -95,7 +102,9 @@ function create_image_bundle {
|
||||
|
||||
# jmod does not preserve file permissions (JDK-8173610)
|
||||
[ -f "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper ] && chmod a+x "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper
|
||||
[ -f "$IMAGES_DIR"/"$__root_dir"/lib/cef_server ] && chmod a+x "$IMAGES_DIR"/"$__root_dir"/lib/cef_server
|
||||
if [ ! -n "${JCEF_BUILD_LEGACY:-}" ]; then
|
||||
[ -f "$IMAGES_DIR"/"$__root_dir"/lib/cef_server ] && chmod a+x "$IMAGES_DIR"/"$__root_dir"/lib/cef_server
|
||||
fi
|
||||
|
||||
echo Creating "$JBR".tar.gz ...
|
||||
|
||||
@@ -121,11 +130,6 @@ case "$bundle_type" in
|
||||
jbr_name_postfix="_${bundle_type}"
|
||||
do_maketest=1
|
||||
;;
|
||||
"lb")
|
||||
do_reset_changes=1
|
||||
jbr_name_postfix="_${bundle_type}"
|
||||
do_maketest=1
|
||||
;;
|
||||
"nomod" | "")
|
||||
bundle_type=""
|
||||
;;
|
||||
@@ -154,7 +158,7 @@ JBRSDK_BUNDLE=jbrsdk
|
||||
echo Fixing permissions
|
||||
chmod -R a+r $JSDK
|
||||
|
||||
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "lb" ]; then
|
||||
if [ "$bundle_type" == "jcef" ]; then
|
||||
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
|
||||
update_jsdk_mods $JSDK $JCEF_PATH/jmods $JSDK/jmods $JSDK_MODS_DIR || do_exit $?
|
||||
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
|
||||
@@ -167,7 +171,7 @@ create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" ||
|
||||
|
||||
# create sdk image bundle
|
||||
modules=$(cat $JSDK/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
|
||||
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "lb" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
|
||||
if [ "$bundle_type" == "jcef" ]|| [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
|
||||
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
|
||||
fi
|
||||
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" $JBRSDK_BUNDLE $JSDK_MODS_DIR "$modules" || do_exit $?
|
||||
|
||||
@@ -93,7 +93,7 @@ WITH_DEBUG_LEVEL="--with-debug-level=release"
|
||||
RELEASE_NAME=linux-x86-server-release
|
||||
|
||||
case "$bundle_type" in
|
||||
"jcef" | "lb")
|
||||
"jcef")
|
||||
echo "not implemented" && do_exit 1
|
||||
;;
|
||||
"nomod" | "")
|
||||
@@ -120,7 +120,7 @@ JBRSDK_BUNDLE=jbrsdk
|
||||
echo Fixing permissions
|
||||
chmod -R a+r $JSDK
|
||||
|
||||
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "lb" ]; then
|
||||
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
|
||||
jbr_name_postfix="_${bundle_type}"
|
||||
else
|
||||
jbr_name_postfix=""
|
||||
|
||||
@@ -41,8 +41,7 @@ public abstract class CGraphicsConfig extends GraphicsConfiguration
|
||||
|
||||
private final CGraphicsDevice device;
|
||||
private ColorModel colorModel;
|
||||
private final SurfaceManager.ProxyCache surfaceDataProxyCache =
|
||||
new SurfaceManager.ProxyCache();
|
||||
private final SurfaceManager.ProxyCache surfaceDataProxyCache = new SurfaceManager.ProxyCache();
|
||||
|
||||
protected CGraphicsConfig(CGraphicsDevice device) {
|
||||
this.device = device;
|
||||
|
||||
@@ -42,7 +42,9 @@ import java.util.ListIterator;
|
||||
import java.util.Map;
|
||||
|
||||
import sun.java2d.MacOSFlags;
|
||||
import sun.java2d.MacosxSurfaceManagerFactory;
|
||||
import sun.java2d.SunGraphicsEnvironment;
|
||||
import sun.java2d.SurfaceManagerFactory;
|
||||
import sun.java2d.metal.MTLGraphicsConfig;
|
||||
import sun.util.logging.PlatformLogger;
|
||||
|
||||
@@ -110,6 +112,9 @@ public final class CGraphicsEnvironment extends SunGraphicsEnvironment {
|
||||
metalPipelineEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Install the correct surface manager factory.
|
||||
SurfaceManagerFactory.setInstance(new MacosxSurfaceManagerFactory());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package sun.java2d;
|
||||
|
||||
import java.awt.GraphicsConfiguration;
|
||||
import java.awt.Image;
|
||||
|
||||
import sun.awt.CGraphicsEnvironment;
|
||||
import sun.awt.image.SunVolatileImage;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.awt.image.TextureWrapperSurfaceManager;
|
||||
import sun.awt.image.VolatileSurfaceManager;
|
||||
import sun.java2d.metal.MTLGraphicsConfig;
|
||||
import sun.java2d.metal.MTLSurfaceData;
|
||||
import sun.java2d.metal.MTLVolatileSurfaceManager;
|
||||
import sun.java2d.opengl.CGLVolatileSurfaceManager;
|
||||
|
||||
/**
|
||||
* This is a factory class with static methods for creating a
|
||||
* platform-specific instance of a particular SurfaceManager. Each platform
|
||||
* (Windows, Unix, etc.) has its own specialized SurfaceManagerFactory.
|
||||
*/
|
||||
public class MacosxSurfaceManagerFactory extends SurfaceManagerFactory {
|
||||
|
||||
/**
|
||||
* Creates a new instance of a VolatileSurfaceManager given any
|
||||
* arbitrary SunVolatileImage. An optional context Object can be supplied
|
||||
* as a way for the caller to pass pipeline-specific context data to
|
||||
* the VolatileSurfaceManager (such as a backbuffer handle, for example).
|
||||
*
|
||||
* For Mac OS X, this method returns either an CGL/MTL-specific
|
||||
* VolatileSurfaceManager based on the GraphicsConfiguration
|
||||
* under which the SunVolatileImage was created.
|
||||
*/
|
||||
public VolatileSurfaceManager createVolatileManager(SunVolatileImage vImg,
|
||||
Object context)
|
||||
{
|
||||
return CGraphicsEnvironment.usingMetalPipeline() ? new MTLVolatileSurfaceManager(vImg, context) :
|
||||
new CGLVolatileSurfaceManager(vImg, context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SurfaceManager createTextureWrapperSurfaceManager(GraphicsConfiguration gc, Image image, long texture) {
|
||||
SurfaceData sd;
|
||||
if (gc instanceof MTLGraphicsConfig) {
|
||||
sd = MTLSurfaceData.createData((MTLGraphicsConfig) gc, image, texture);
|
||||
} else {
|
||||
throw new UnsupportedOperationException("Unsupported GraphicsConfiguration");
|
||||
}
|
||||
return new TextureWrapperSurfaceManager(sd);
|
||||
}
|
||||
}
|
||||
@@ -30,9 +30,6 @@ import sun.awt.CGraphicsDevice;
|
||||
import sun.awt.CGraphicsEnvironment;
|
||||
import sun.awt.image.OffScreenImage;
|
||||
import sun.awt.image.SunVolatileImage;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.awt.image.TextureWrapperSurfaceManager;
|
||||
import sun.awt.image.VolatileSurfaceManager;
|
||||
import sun.java2d.Disposer;
|
||||
import sun.java2d.DisposerRecord;
|
||||
import sun.java2d.Surface;
|
||||
@@ -49,7 +46,6 @@ import java.awt.BufferCapabilities;
|
||||
import java.awt.Component;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.GraphicsConfiguration;
|
||||
import java.awt.Image;
|
||||
import java.awt.ImageCapabilities;
|
||||
import java.awt.Rectangle;
|
||||
@@ -71,7 +67,7 @@ import static sun.java2d.pipe.hw.ContextCapabilities.*;
|
||||
import static sun.java2d.metal.MTLContext.MTLContextCaps.CAPS_EXT_BIOP_SHADER;
|
||||
|
||||
public final class MTLGraphicsConfig extends CGraphicsConfig
|
||||
implements AccelGraphicsConfig, SurfaceManager.Factory, SurfaceManager.TextureWrapperFactory
|
||||
implements AccelGraphicsConfig
|
||||
{
|
||||
private static boolean mtlAvailable;
|
||||
private static ImageCapabilities imageCaps = new MTLImageCaps();
|
||||
@@ -384,17 +380,4 @@ public final class MTLGraphicsConfig extends CGraphicsConfig
|
||||
return Math.max(maxTextureSize / getDevice().getScaleFactor(),
|
||||
getBounds().height);
|
||||
}
|
||||
|
||||
@Override
|
||||
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
|
||||
Object context) {
|
||||
return new MTLVolatileSurfaceManager(image, context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SurfaceManager createTextureWrapperSurfaceManager(
|
||||
GraphicsConfiguration gc, Image image, long texture) {
|
||||
SurfaceData sd = MTLSurfaceData.createData(this, image, texture);
|
||||
return new TextureWrapperSurfaceManager(sd);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,8 +47,6 @@ import sun.awt.CGraphicsConfig;
|
||||
import sun.awt.CGraphicsDevice;
|
||||
import sun.awt.image.OffScreenImage;
|
||||
import sun.awt.image.SunVolatileImage;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.awt.image.VolatileSurfaceManager;
|
||||
import sun.java2d.Disposer;
|
||||
import sun.java2d.DisposerRecord;
|
||||
import sun.java2d.Surface;
|
||||
@@ -416,10 +414,4 @@ public final class CGLGraphicsConfig extends CGraphicsConfig
|
||||
return Math.max(maxTextureSize / getDevice().getScaleFactor(),
|
||||
getBounds().height);
|
||||
}
|
||||
|
||||
@Override
|
||||
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
|
||||
Object context) {
|
||||
return new CGLVolatileSurfaceManager(image, context);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ package com.jetbrains.desktop.image;
|
||||
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.java2d.SurfaceData;
|
||||
import sun.java2d.SurfaceManagerFactory;
|
||||
|
||||
import java.awt.AlphaComposite;
|
||||
import java.awt.GraphicsConfiguration;
|
||||
@@ -70,10 +71,7 @@ public class TextureWrapperImage extends Image {
|
||||
public TextureWrapperImage(GraphicsConfiguration gc, long texture)
|
||||
throws UnsupportedOperationException, IllegalArgumentException {
|
||||
this.gc = gc;
|
||||
SurfaceManager surfaceManager;
|
||||
if (gc instanceof SurfaceManager.TextureWrapperFactory factory) {
|
||||
surfaceManager = factory.createTextureWrapperSurfaceManager(gc, this, texture);
|
||||
} else throw new UnsupportedOperationException();
|
||||
SurfaceManager surfaceManager = SurfaceManagerFactory.getInstance().createTextureWrapperSurfaceManager(gc, this, texture);
|
||||
sd = surfaceManager.getPrimarySurfaceData();
|
||||
SurfaceManager.setManager(this, surfaceManager);
|
||||
}
|
||||
|
||||
@@ -4547,11 +4547,6 @@ public class Window extends Container implements Accessible {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addWindowListener(Window w, WindowListener listener) {
|
||||
w.addWindowListener(listener);
|
||||
}
|
||||
|
||||
private static void dumpCounter(final String counterName, final double valPerSecond) {
|
||||
if (USE_COUNTERS) {
|
||||
doLog(String.format("%s per second: %.2f", counterName, valPerSecond),
|
||||
|
||||
@@ -689,27 +689,6 @@ public class BasicTreeUI extends TreeUI
|
||||
return bounds;
|
||||
}
|
||||
|
||||
/**
|
||||
* A potentially faster version of {@link #getPathBounds(JTree, TreePath)}
|
||||
* which calculates only {@code y} and {@code height}
|
||||
* of the bounding {@code Rectangle}
|
||||
*/
|
||||
private Rectangle getVerticalPathBounds(TreePath path) {
|
||||
if (tree == null || treeState == null) {
|
||||
return null;
|
||||
}
|
||||
int rowHeight = treeState.getRowHeight();
|
||||
if (rowHeight <= 0) {
|
||||
return getPathBounds(tree, path);
|
||||
}
|
||||
int row = treeState.getRowForPath(path);
|
||||
if (row < 0) {
|
||||
return null;
|
||||
}
|
||||
return new Rectangle(0, tree.getInsets().top + row * rowHeight,
|
||||
0, rowHeight);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the path for passed in row. If row is not visible
|
||||
* null is returned.
|
||||
@@ -4340,9 +4319,10 @@ public class BasicTreeUI extends TreeUI
|
||||
updateSize();
|
||||
}
|
||||
else if (treeState.isExpanded(parentPath)) {
|
||||
boolean isShowing = tree.isShowing();
|
||||
TreePath minPath = null;
|
||||
Rectangle minBounds = null;
|
||||
if (tree.isShowing()) {
|
||||
if (isShowing) {
|
||||
// Changed nodes are visible
|
||||
// Find the minimum index, we only need paint from there
|
||||
// down.
|
||||
@@ -4353,27 +4333,28 @@ public class BasicTreeUI extends TreeUI
|
||||
Object minChild = treeModel.getChild(
|
||||
parentPath.getLastPathComponent(), minIndex);
|
||||
minPath = parentPath.pathByAddingChild(minChild);
|
||||
minBounds = getVerticalPathBounds(minPath);
|
||||
minBounds = getPathBounds(tree, minPath);
|
||||
}
|
||||
|
||||
// Forward to the treestate
|
||||
treeState.treeNodesChanged(e);
|
||||
|
||||
// Mark preferred size as bogus.
|
||||
updateSize0();
|
||||
|
||||
if (minBounds != null) {
|
||||
if (isShowing) {
|
||||
// And repaint
|
||||
Rectangle newMinBounds = getVerticalPathBounds(minPath);
|
||||
if (newMinBounds != null) {
|
||||
if (indices.length == 1 &&
|
||||
newMinBounds.height == minBounds.height) {
|
||||
tree.repaint(0, minBounds.y, tree.getWidth(),
|
||||
minBounds.height);
|
||||
} else {
|
||||
tree.repaint(0, minBounds.y, tree.getWidth(),
|
||||
tree.getHeight() - minBounds.y);
|
||||
}
|
||||
Rectangle newMinBounds = getPathBounds(tree, minPath);
|
||||
if (minBounds == null || newMinBounds == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (indices.length == 1 &&
|
||||
newMinBounds.height == minBounds.height) {
|
||||
tree.repaint(0, minBounds.y, tree.getWidth(),
|
||||
minBounds.height);
|
||||
} else {
|
||||
tree.repaint(0, minBounds.y, tree.getWidth(),
|
||||
tree.getHeight() - minBounds.y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,6 @@ import java.awt.event.InputEvent;
|
||||
import java.awt.event.InvocationEvent;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.WindowListener;
|
||||
import java.awt.geom.Point2D;
|
||||
import java.awt.image.BufferStrategy;
|
||||
import java.awt.peer.ComponentPeer;
|
||||
@@ -358,8 +357,6 @@ public final class AWTAccessor {
|
||||
double getCounterPerSecond(Window w, String counterName);
|
||||
|
||||
void dumpStats(Window w, boolean reset, StringBuilder sb);
|
||||
|
||||
void addWindowListener(Window w, WindowListener listener);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -50,7 +50,6 @@ import java.awt.KeyboardFocusManager;
|
||||
import java.awt.Label;
|
||||
import java.awt.MenuComponent;
|
||||
import java.awt.Panel;
|
||||
import java.awt.Point;
|
||||
import java.awt.RenderingHints;
|
||||
import java.awt.ScrollPane;
|
||||
import java.awt.Scrollbar;
|
||||
@@ -92,7 +91,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.locks.Condition;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
|
||||
import com.jetbrains.exported.JBRApi;
|
||||
import sun.awt.im.InputContext;
|
||||
import sun.awt.image.ByteArrayImageSource;
|
||||
import sun.awt.image.FileImageSource;
|
||||
@@ -2148,23 +2146,6 @@ public abstract class SunToolkit extends Toolkit
|
||||
return AWTAccessor.getAWTEventAccessor().isSystemGenerated(e);
|
||||
}
|
||||
|
||||
@JBRApi.Service
|
||||
@JBRApi.Provides("RelativePointerMovement")
|
||||
public interface RelativePointerMovementInfoProvider {
|
||||
private static RelativePointerMovementInfoProvider create() {
|
||||
var tk = Toolkit.getDefaultToolkit();
|
||||
if (tk instanceof ComponentFactory cf) {
|
||||
var mouseInfoPeer = cf.getMouseInfoPeer();
|
||||
if (mouseInfoPeer instanceof RelativePointerMovementInfoProvider p){
|
||||
return p;
|
||||
}
|
||||
}
|
||||
|
||||
throw new JBRApi.ServiceNotAvailableException("Service not supported for toolkit " + tk.getClass().getName());
|
||||
}
|
||||
|
||||
Point getAccumulatedMouseDeltaAndReset();
|
||||
}
|
||||
} // class SunToolkit
|
||||
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ import java.awt.image.BufferedImage;
|
||||
import java.awt.image.ImageObserver;
|
||||
import java.awt.image.VolatileImage;
|
||||
import sun.java2d.SunGraphics2D;
|
||||
import sun.java2d.SurfaceManagerFactory;
|
||||
import sun.java2d.DestSurfaceProvider;
|
||||
import sun.java2d.Surface;
|
||||
import sun.java2d.pipe.Region;
|
||||
@@ -157,19 +158,29 @@ public class SunVolatileImage extends VolatileImage
|
||||
return forcedAccelSurfaceType;
|
||||
}
|
||||
|
||||
private VolatileSurfaceManager createSurfaceManager(
|
||||
Object context, ImageCapabilities caps) {
|
||||
// GraphicsConfig may provide some specific surface manager
|
||||
// implementation.
|
||||
// In case it doesn't, or we were specifically requested to use
|
||||
// an unaccelerated surface, fall back to the buffered image
|
||||
// surface manager.
|
||||
if ((caps == null || caps.isAccelerated()) &&
|
||||
graphicsConfig instanceof SurfaceManager.Factory factory) {
|
||||
return factory.createVolatileManager(this, context);
|
||||
} else {
|
||||
protected VolatileSurfaceManager createSurfaceManager(Object context,
|
||||
ImageCapabilities caps)
|
||||
{
|
||||
/**
|
||||
* Platform-specific SurfaceManagerFactories will return a
|
||||
* manager suited to acceleration on each platform. But if
|
||||
* the user is asking for a VolatileImage from a BufferedImageGC,
|
||||
* then we need to return the appropriate unaccelerated manager.
|
||||
* Note: this could change in the future; if some platform would
|
||||
* like to accelerate BIGC volatile images, then this special-casing
|
||||
* of the BIGC graphicsConfig should live in platform-specific
|
||||
* code instead.
|
||||
* We do the same for a Printer Device, and if user requested an
|
||||
* unaccelerated VolatileImage by passing the capabilities object.
|
||||
*/
|
||||
if (graphicsConfig instanceof BufferedImageGraphicsConfig ||
|
||||
graphicsConfig instanceof sun.print.PrinterGraphicsConfig ||
|
||||
(caps != null && !caps.isAccelerated()))
|
||||
{
|
||||
return new BufImgVolatileSurfaceManager(this, context);
|
||||
}
|
||||
SurfaceManagerFactory smf = SurfaceManagerFactory.getInstance();
|
||||
return smf.createVolatileManager(this, context);
|
||||
}
|
||||
|
||||
private Color getForeground() {
|
||||
|
||||
@@ -184,31 +184,6 @@ public abstract class SurfaceManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* See TextureWrapperImage.
|
||||
*/
|
||||
public interface TextureWrapperFactory {
|
||||
SurfaceManager createTextureWrapperSurfaceManager(
|
||||
GraphicsConfiguration gc, Image image, long texture);
|
||||
}
|
||||
|
||||
/**
|
||||
* An interface for GraphicsConfiguration objects to implement if
|
||||
* they create their own VolatileSurfaceManager implementations.
|
||||
*/
|
||||
public interface Factory {
|
||||
|
||||
/**
|
||||
* Creates a new instance of a VolatileSurfaceManager given a
|
||||
* compatible SunVolatileImage.
|
||||
* An optional context Object can be supplied as a way for the caller
|
||||
* to pass pipeline-specific context data to the VolatileSurfaceManager
|
||||
* (such as a backbuffer handle, for example).
|
||||
*/
|
||||
VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
|
||||
Object context);
|
||||
}
|
||||
|
||||
/**
|
||||
* An interface for GraphicsConfiguration objects to implement if
|
||||
* their surfaces accelerate images using SurfaceDataProxy objects.
|
||||
@@ -227,8 +202,7 @@ public abstract class SurfaceManager {
|
||||
}
|
||||
|
||||
public static class ProxyCache {
|
||||
private final Map<SurfaceManager, SurfaceDataProxy> map =
|
||||
Collections.synchronizedMap(new WeakHashMap<>());
|
||||
private final Map<SurfaceManager, SurfaceDataProxy> map = Collections.synchronizedMap(new WeakHashMap<>());
|
||||
|
||||
/**
|
||||
* Return a cached SurfaceDataProxy object for a given SurfaceManager.
|
||||
@@ -279,8 +253,7 @@ public abstract class SurfaceManager {
|
||||
|
||||
void flush(boolean deaccelerate) {
|
||||
synchronized (weakCache) {
|
||||
Iterator<WeakReference<SurfaceDataProxy>> i =
|
||||
weakCache.values().iterator();
|
||||
Iterator<WeakReference<SurfaceDataProxy>> i = weakCache.values().iterator();
|
||||
while (i.hasNext()) {
|
||||
SurfaceDataProxy sdp = i.next().get();
|
||||
if (sdp == null || sdp.flush(deaccelerate)) {
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package sun.java2d;
|
||||
|
||||
import sun.awt.image.SunVolatileImage;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.awt.image.VolatileSurfaceManager;
|
||||
|
||||
import java.awt.GraphicsConfiguration;
|
||||
import java.awt.Image;
|
||||
|
||||
/**
|
||||
* This factory creates platform specific VolatileSurfaceManager
|
||||
* implementations.
|
||||
*
|
||||
* There are two platform specific SurfaceManagerFactories in OpenJDK,
|
||||
* UnixSurfaceManagerFactory and WindowsSurfaceManagerFactory.
|
||||
* The actually used SurfaceManagerFactory is set by the respective platform
|
||||
* GraphicsEnvironment implementations in the static initializer.
|
||||
*/
|
||||
public abstract class SurfaceManagerFactory {
|
||||
|
||||
/**
|
||||
* The single shared instance.
|
||||
*/
|
||||
private static SurfaceManagerFactory instance;
|
||||
|
||||
/**
|
||||
* Returns the surface manager factory instance. This returns a factory
|
||||
* that has been set by {@link #setInstance(SurfaceManagerFactory)}.
|
||||
*
|
||||
* @return the surface manager factory
|
||||
*/
|
||||
public static synchronized SurfaceManagerFactory getInstance() {
|
||||
|
||||
if (instance == null) {
|
||||
throw new IllegalStateException("No SurfaceManagerFactory set.");
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the surface manager factory. This may only be called once, and it
|
||||
* may not be set back to {@code null} when the factory is already
|
||||
* instantiated.
|
||||
*
|
||||
* @param factory the factory to set
|
||||
*/
|
||||
public static synchronized void setInstance(SurfaceManagerFactory factory) {
|
||||
|
||||
if (factory == null) {
|
||||
// We don't want to allow setting this to null at any time.
|
||||
throw new IllegalArgumentException("factory must be non-null");
|
||||
}
|
||||
|
||||
if (instance != null) {
|
||||
// We don't want to re-set the instance at any time.
|
||||
throw new IllegalStateException("The surface manager factory is already initialized");
|
||||
}
|
||||
|
||||
instance = factory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new instance of a VolatileSurfaceManager given any
|
||||
* arbitrary SunVolatileImage. An optional context Object can be supplied
|
||||
* as a way for the caller to pass pipeline-specific context data to
|
||||
* the VolatileSurfaceManager (such as a backbuffer handle, for example).
|
||||
*/
|
||||
public abstract VolatileSurfaceManager
|
||||
createVolatileManager(SunVolatileImage image, Object context);
|
||||
|
||||
public abstract SurfaceManager createTextureWrapperSurfaceManager(GraphicsConfiguration gc, Image image, long texture);
|
||||
}
|
||||
@@ -35,7 +35,7 @@ import sun.java2d.pipe.hw.AccelGraphicsConfig;
|
||||
* methods directly from OGLSurfaceData.
|
||||
*/
|
||||
interface OGLGraphicsConfig extends
|
||||
AccelGraphicsConfig, SurfaceManager.ProxiedGraphicsConfig, SurfaceManager.Factory
|
||||
AccelGraphicsConfig, SurfaceManager.ProxiedGraphicsConfig
|
||||
{
|
||||
OGLContext getContext();
|
||||
long getNativeConfigInfo();
|
||||
|
||||
@@ -33,6 +33,7 @@ import sun.awt.image.SunVolatileImage;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.awt.image.VolatileSurfaceManager;
|
||||
import sun.java2d.Surface;
|
||||
import sun.java2d.SurfaceManagerFactory;
|
||||
import sun.java2d.pipe.BufferedContext;
|
||||
import sun.java2d.pipe.hw.AccelGraphicsConfig;
|
||||
import sun.java2d.pipe.hw.AccelTypedVolatileImage;
|
||||
@@ -53,9 +54,8 @@ import static sun.java2d.pipe.hw.AccelSurface.TEXTURE;
|
||||
* for most of the methods, including base methods of GraphicsConfiguration class.
|
||||
*/
|
||||
public interface VKGraphicsConfig extends AccelGraphicsConfig,
|
||||
SurfaceManager.ProxiedGraphicsConfig, SurfaceManager.Factory {
|
||||
SurfaceManager.ProxiedGraphicsConfig {
|
||||
|
||||
@Override
|
||||
default VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
|
||||
Object context) {
|
||||
return new VKVolatileSurfaceManager(image, context);
|
||||
|
||||
@@ -36,7 +36,6 @@ import sun.java2d.loops.CompositeType;
|
||||
import sun.java2d.loops.GraphicsPrimitive;
|
||||
import sun.java2d.loops.SurfaceType;
|
||||
import static sun.java2d.pipe.BufferedOpCodes.CONFIGURE_SURFACE;
|
||||
import static sun.java2d.pipe.BufferedOpCodes.DISPOSE_SURFACE;
|
||||
import sun.java2d.pipe.BufferedContext;
|
||||
import sun.java2d.pipe.ParallelogramPipe;
|
||||
import sun.java2d.pipe.PixelToParallelogramConverter;
|
||||
@@ -44,6 +43,7 @@ import sun.java2d.pipe.RenderBuffer;
|
||||
import sun.java2d.pipe.TextPipe;
|
||||
import sun.java2d.pipe.hw.AccelSurface;
|
||||
import java.awt.GraphicsConfiguration;
|
||||
import java.awt.GraphicsEnvironment;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.awt.image.Raster;
|
||||
@@ -137,28 +137,6 @@ public abstract class VKSurfaceData extends SurfaceData
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Disposes the native resources associated with the given VKSurfaceData
|
||||
* (referenced by the pData parameter). This method is invoked from
|
||||
* the native Dispose() method from the Disposer thread when the
|
||||
* Java-level VKSurfaceData object is about to go away.
|
||||
*/
|
||||
static void dispose(long pData) {
|
||||
VKRenderQueue rq = VKRenderQueue.getInstance();
|
||||
rq.lock();
|
||||
try {
|
||||
RenderBuffer buf = rq.getBuffer();
|
||||
rq.ensureCapacityAndAlignment(12, 4);
|
||||
buf.putInt(DISPOSE_SURFACE);
|
||||
buf.putLong(pData);
|
||||
|
||||
// this call is expected to complete synchronously, so flush now
|
||||
rq.flushNow();
|
||||
} finally {
|
||||
rq.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
public BufferedImage getSnapshot(int x, int y, int width, int height) {
|
||||
BufferedImage image = getFormat().createCompatibleImage(width, height, getTransparency());
|
||||
SurfaceData sd = SurfaceData.getPrimarySurfaceData(image);
|
||||
|
||||
@@ -174,8 +174,7 @@ void VKBlitLoops_Blit(JNIEnv *env,
|
||||
|
||||
VKDevice* device = context->surface->device;
|
||||
BlitSrcType type = decodeSrcType(device, srctype);
|
||||
VKTexturePoolHandle* imageHandle =
|
||||
VKTexturePool_GetTexture(VKRenderer_GetTexturePool(device->renderer), sw, sh, type.format);
|
||||
VKTexturePoolHandle* imageHandle = VKTexturePool_GetTexture(device->texturePool, sw, sh, type.format);
|
||||
VKImage* image = VKTexturePoolHandle_GetTexture(imageHandle);
|
||||
|
||||
VkDeviceSize dataSize = sh * sw * srcInfo.pixelStride;
|
||||
|
||||
@@ -272,6 +272,7 @@ void VKDevice_CheckAndAdd(VKEnv* vk, VkPhysicalDevice physicalDevice) {
|
||||
void VKDevice_Reset(VKDevice* device) {
|
||||
if (device == NULL) return;
|
||||
VKRenderer_Destroy(device->renderer);
|
||||
VKTexturePool_Dispose(device->texturePool);
|
||||
VKAllocator_Destroy(device->allocator);
|
||||
ARRAY_FREE(device->enabledExtensions);
|
||||
ARRAY_FREE(device->enabledLayers);
|
||||
@@ -391,4 +392,11 @@ Java_sun_java2d_vulkan_VKGPU_init(JNIEnv *env, jclass jClass, jlong jDevice) {
|
||||
JNU_ThrowByName(env, "java/lang/RuntimeException", "Vulkan: Cannot create renderer");
|
||||
return;
|
||||
}
|
||||
|
||||
device->texturePool = VKTexturePool_InitWithDevice(device);
|
||||
if (!device->texturePool) {
|
||||
VKDevice_Reset(device);
|
||||
JNU_ThrowByName(env, "java/lang/RuntimeException", "Vulkan: Cannot create texture pool");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,6 +59,7 @@ struct VKDevice {
|
||||
|
||||
VKAllocator* allocator;
|
||||
VKRenderer* renderer;
|
||||
VKTexturePool* texturePool;
|
||||
|
||||
DEVICE_FUNCTION_TABLE(DECL_PFN)
|
||||
SWAPCHAIN_DEVICE_FUNCTION_TABLE(DECL_PFN)
|
||||
|
||||
@@ -573,10 +573,9 @@ JNIEXPORT void JNICALL Java_sun_java2d_vulkan_VKRenderQueue_flushBuffer
|
||||
break;
|
||||
case sun_java2d_pipe_BufferedOpCodes_DISPOSE_SURFACE:
|
||||
{
|
||||
VKSDOps* surface = NEXT_VK_SURFACE(b);
|
||||
jlong pData = NEXT_LONG(b);
|
||||
J2dRlsTraceLn(J2D_TRACE_VERBOSE,
|
||||
"VKRenderQueue_flushBuffer: DISPOSE_SURFACE");
|
||||
VKSD_ResetSurface(surface);
|
||||
}
|
||||
break;
|
||||
case sun_java2d_pipe_BufferedOpCodes_DISPOSE_CONFIG:
|
||||
|
||||
@@ -94,7 +94,6 @@ typedef struct {
|
||||
struct VKRenderer {
|
||||
VKDevice* device;
|
||||
VKPipelineContext* pipelineContext;
|
||||
VKTexturePool* texturePool;
|
||||
|
||||
POOL(VkCommandBuffer, commandBufferPool);
|
||||
POOL(VkCommandBuffer, secondaryCommandBufferPool);
|
||||
@@ -194,9 +193,6 @@ VKRenderingContext *VKRenderer_GetContext() {
|
||||
return &context;
|
||||
}
|
||||
|
||||
VKTexturePool *VKRenderer_GetTexturePool(VKRenderer* renderer) {
|
||||
return renderer->texturePool;
|
||||
}
|
||||
/**
|
||||
* Helper function for POOL_TAKE macro.
|
||||
*/
|
||||
@@ -372,12 +368,6 @@ VKRenderer* VKRenderer_Create(VKDevice* device) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
renderer->texturePool = VKTexturePool_InitWithDevice(device);
|
||||
if (!renderer->texturePool) {
|
||||
VKRenderer_Destroy(renderer);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Create command pool
|
||||
// TODO we currently have single command pool with VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
|
||||
// we may need to consider having multiple pools to avoid resetting buffers one-by-one
|
||||
@@ -448,9 +438,6 @@ void VKRenderer_Destroy(VKRenderer* renderer) {
|
||||
device->vkDestroyDescriptorPool(device->handle, renderer->descriptorPools[i], NULL);
|
||||
}
|
||||
ARRAY_FREE(renderer->descriptorPools);
|
||||
|
||||
VKTexturePool_Dispose(renderer->texturePool);
|
||||
|
||||
for (uint32_t i = 0; i < ARRAY_SIZE(renderer->imageDescriptorPools); i++) {
|
||||
device->vkDestroyDescriptorPool(device->handle, renderer->imageDescriptorPools[i], NULL);
|
||||
}
|
||||
@@ -597,46 +584,33 @@ inline void VKRenderer_FlushDraw(VKSDOps* surface) {
|
||||
static void VKRenderer_ResetDrawing(VKSDOps* surface) {
|
||||
assert(surface != NULL && surface->renderPass != NULL);
|
||||
VKRenderer* renderer = surface->device->renderer;
|
||||
VKRenderPass* renderPass = surface->renderPass;
|
||||
renderPass->state.composite = NO_COMPOSITE;
|
||||
renderPass->state.shader = NO_SHADER;
|
||||
renderPass->transformModCount = 0;
|
||||
renderPass->firstVertex = 0;
|
||||
renderPass->vertexCount = 0;
|
||||
renderPass->vertexBufferWriting = (BufferWritingState) { NULL, 0, VK_FALSE };
|
||||
renderPass->maskFillBufferWriting = (BufferWritingState) { NULL, 0, VK_FALSE };
|
||||
if (ARRAY_SIZE(renderPass->flushRanges) > 0) {
|
||||
surface->renderPass->state.composite = NO_COMPOSITE;
|
||||
surface->renderPass->state.shader = NO_SHADER;
|
||||
surface->renderPass->transformModCount = 0;
|
||||
surface->renderPass->firstVertex = 0;
|
||||
surface->renderPass->vertexCount = 0;
|
||||
surface->renderPass->vertexBufferWriting = (BufferWritingState) {NULL, 0, VK_FALSE};
|
||||
surface->renderPass->maskFillBufferWriting = (BufferWritingState) {NULL, 0, VK_FALSE};
|
||||
if (ARRAY_SIZE(surface->renderPass->flushRanges) > 0) {
|
||||
VK_IF_ERROR(surface->device->vkFlushMappedMemoryRanges(surface->device->handle,
|
||||
ARRAY_SIZE(renderPass->flushRanges), renderPass->flushRanges)) {}
|
||||
ARRAY_RESIZE(renderPass->flushRanges, 0);
|
||||
ARRAY_SIZE(surface->renderPass->flushRanges), surface->renderPass->flushRanges)) {}
|
||||
ARRAY_RESIZE(surface->renderPass->flushRanges, 0);
|
||||
}
|
||||
size_t vertexBufferCount = ARRAY_SIZE(renderPass->vertexBuffers);
|
||||
size_t maskFillBufferCount = ARRAY_SIZE(renderPass->maskFillBuffers);
|
||||
size_t cleanupQueueCount = ARRAY_SIZE(renderPass->cleanupQueue);
|
||||
size_t vertexBufferCount = ARRAY_SIZE(surface->renderPass->vertexBuffers);
|
||||
size_t maskFillBufferCount = ARRAY_SIZE(surface->renderPass->maskFillBuffers);
|
||||
size_t cleanupQueueCount = ARRAY_SIZE(surface->renderPass->cleanupQueue);
|
||||
for (uint32_t i = 0; i < vertexBufferCount; i++) {
|
||||
POOL_RETURN(renderer, vertexBufferPool, renderPass->vertexBuffers[i]);
|
||||
POOL_RETURN(surface->device->renderer, vertexBufferPool, surface->renderPass->vertexBuffers[i]);
|
||||
}
|
||||
for (uint32_t i = 0; i < maskFillBufferCount; i++) {
|
||||
POOL_RETURN(renderer, maskFillBufferPool, renderPass->maskFillBuffers[i]);
|
||||
POOL_RETURN(surface->device->renderer, maskFillBufferPool, surface->renderPass->maskFillBuffers[i]);
|
||||
}
|
||||
for (uint32_t i = 0; i < cleanupQueueCount; i++) {
|
||||
POOL_RETURN(renderer, cleanupQueue, renderPass->cleanupQueue[i]);
|
||||
POOL_RETURN(surface->device->renderer, cleanupQueue, surface->renderPass->cleanupQueue[i]);
|
||||
}
|
||||
ARRAY_RESIZE(renderPass->vertexBuffers, 0);
|
||||
ARRAY_RESIZE(renderPass->maskFillBuffers, 0);
|
||||
ARRAY_RESIZE(renderPass->cleanupQueue, 0);
|
||||
|
||||
// Update dependencies on used surfaces.
|
||||
for (uint32_t i = 0, surfaces = (uint32_t) ARRAY_SIZE(renderPass->usedSurfaces); i < surfaces; i++) {
|
||||
VKSDOps* usedSurface = renderPass->usedSurfaces[i];
|
||||
uint32_t newSize = 0, oldSize = (uint32_t) ARRAY_SIZE(usedSurface->dependentSurfaces);
|
||||
for (uint32_t j = 0; j < oldSize; j++) {
|
||||
VKSDOps* s = usedSurface->dependentSurfaces[j];
|
||||
if (s != surface) usedSurface->dependentSurfaces[newSize++] = s;
|
||||
}
|
||||
if (newSize != oldSize) ARRAY_RESIZE(usedSurface->dependentSurfaces, newSize);
|
||||
}
|
||||
ARRAY_RESIZE(renderPass->usedSurfaces, 0);
|
||||
ARRAY_RESIZE(surface->renderPass->vertexBuffers, 0);
|
||||
ARRAY_RESIZE(surface->renderPass->maskFillBuffers, 0);
|
||||
ARRAY_RESIZE(surface->renderPass->cleanupQueue, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -890,11 +864,19 @@ VkBool32 VKRenderer_FlushRenderPass(VKSDOps* surface) {
|
||||
VKRenderer* renderer = device->renderer;
|
||||
VkCommandBuffer cb = VKRenderer_Record(renderer);
|
||||
|
||||
// Update timestamps on used surfaces.
|
||||
// Update dependencies on used surfaces.
|
||||
surface->lastTimestamp = renderer->writeTimestamp;
|
||||
for (uint32_t i = 0, surfaces = (uint32_t) ARRAY_SIZE(surface->renderPass->usedSurfaces); i < surfaces; i++) {
|
||||
surface->renderPass->usedSurfaces[i]->lastTimestamp = renderer->writeTimestamp;
|
||||
VKSDOps* usedSurface = surface->renderPass->usedSurfaces[i];
|
||||
usedSurface->lastTimestamp = renderer->writeTimestamp;
|
||||
uint32_t newSize = 0, oldSize = (uint32_t) ARRAY_SIZE(usedSurface->dependentSurfaces);
|
||||
for (uint32_t j = 0; j < oldSize; j++) {
|
||||
VKSDOps* s = usedSurface->dependentSurfaces[j];
|
||||
if (s != surface) usedSurface->dependentSurfaces[newSize++] = s;
|
||||
}
|
||||
if (newSize != oldSize) ARRAY_RESIZE(usedSurface->dependentSurfaces, newSize);
|
||||
}
|
||||
ARRAY_RESIZE(surface->renderPass->usedSurfaces, 0);
|
||||
|
||||
// Insert barriers to prepare surface for rendering.
|
||||
VkImageMemoryBarrier barriers[2];
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
|
||||
#include "VKTypes.h"
|
||||
#include "VKPipelines.h"
|
||||
#include "VKTexturePool.h"
|
||||
|
||||
#define NO_CLIP ((VkRect2D) {{0, 0}, {0x7FFFFFFFU, 0x7FFFFFFFU}})
|
||||
|
||||
@@ -148,6 +147,5 @@ void VKRenderer_DrawImage(VKImage* image, VkFormat format,
|
||||
float dx1, float dy1, float dx2, float dy2);
|
||||
|
||||
VKRenderingContext* VKRenderer_GetContext();
|
||||
VKTexturePool* VKRenderer_GetTexturePool(VKRenderer* );
|
||||
|
||||
#endif //VKRenderer_h_Included
|
||||
|
||||
@@ -292,7 +292,15 @@ VkBool32 VKSD_ConfigureWindowSurface(VKWinSDOps* vkwinsdo) {
|
||||
}
|
||||
|
||||
static void VKSD_OnDispose(JNIEnv* env, SurfaceDataOps* ops) {
|
||||
JNU_CallStaticMethodByName(env, NULL, "sun/java2d/vulkan/VKSurfaceData", "dispose", "(J)V", ptr_to_jlong(ops));
|
||||
// We are being called from the disposer thread, RQ might be working in parallel.
|
||||
// VKRenderQueue.lock/unlock is equivalent to AWT_LOCK/AWT_UNLOCK,
|
||||
// but those are only available in the toolkit-specific part of AWT, so we call RQ there.
|
||||
jobject rq = JNU_CallStaticMethodByName(env, NULL,
|
||||
"sun/java2d/vulkan/VKRenderQueue", "getInstance", "()Lsun/java2d/vulkan/VKRenderQueue;").l;
|
||||
JNU_CallMethodByName(env, NULL, rq, "lock", "()V");
|
||||
VKSD_ResetSurface((VKSDOps*) ops);
|
||||
JNU_CallMethodByName(env, NULL, rq, "unlock", "()V");
|
||||
(*env)->DeleteLocalRef(env, rq);
|
||||
}
|
||||
|
||||
JNIEXPORT VKSDOps* VKSD_CreateSurface(JNIEnv* env, jobject vksd, jint type, jint format, jint backgroundRGB,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -48,7 +48,7 @@
|
||||
// restore the area overwritten by the graphic with
|
||||
// what was there prior to rendering the graphic.
|
||||
|
||||
static const char szNetscape20ext[] = "NETSCAPE2.0";
|
||||
static const char szNetscape20ext[11] = "NETSCAPE2.0";
|
||||
|
||||
#define NSEXT_LOOP 0x01 // Loop Count field code
|
||||
|
||||
@@ -181,7 +181,7 @@ SplashDecodeGif(Splash * splash, GifFileType * gif)
|
||||
}
|
||||
case APPLICATION_EXT_FUNC_CODE:
|
||||
{
|
||||
if (size == strlen(szNetscape20ext)
|
||||
if (size == sizeof(szNetscape20ext)
|
||||
&& memcmp(pExtension, szNetscape20ext, size) == 0) {
|
||||
int iSubCode;
|
||||
|
||||
|
||||
@@ -47,7 +47,6 @@ import java.awt.image.WritableRaster;
|
||||
import sun.awt.image.OffScreenImage;
|
||||
import sun.awt.image.SunVolatileImage;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.awt.image.VolatileSurfaceManager;
|
||||
import sun.java2d.Disposer;
|
||||
import sun.java2d.DisposerRecord;
|
||||
import sun.java2d.SurfaceData;
|
||||
@@ -56,7 +55,6 @@ import sun.java2d.loops.RenderLoops;
|
||||
import sun.java2d.loops.SurfaceType;
|
||||
import sun.java2d.pipe.Region;
|
||||
import sun.java2d.x11.X11SurfaceData;
|
||||
import sun.java2d.x11.X11VolatileSurfaceManager;
|
||||
|
||||
/**
|
||||
* This is an implementation of a GraphicsConfiguration object for a
|
||||
@@ -66,7 +64,7 @@ import sun.java2d.x11.X11VolatileSurfaceManager;
|
||||
* @see GraphicsDevice
|
||||
*/
|
||||
public class X11GraphicsConfig extends GraphicsConfiguration
|
||||
implements SurfaceManager.ProxiedGraphicsConfig, SurfaceManager.Factory
|
||||
implements SurfaceManager.ProxiedGraphicsConfig
|
||||
{
|
||||
private final X11GraphicsDevice device;
|
||||
protected int visual;
|
||||
@@ -502,10 +500,4 @@ public class X11GraphicsConfig extends GraphicsConfiguration
|
||||
}
|
||||
|
||||
private native boolean isTranslucencyCapable(long x11ConfigData);
|
||||
|
||||
@Override
|
||||
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
|
||||
Object context) {
|
||||
return new X11VolatileSurfaceManager(image, context);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,8 +67,7 @@ public final class X11GraphicsDevice extends GraphicsDevice
|
||||
* therefore methods, which is using this id should be ready to it.
|
||||
*/
|
||||
private volatile int screen;
|
||||
Map<SurfaceType, SurfaceManager.ProxyCache> x11ProxyCacheMap =
|
||||
Collections.synchronizedMap(new HashMap<>());
|
||||
Map<SurfaceType, SurfaceManager.ProxyCache> x11ProxyCacheMap = Collections.synchronizedMap(new HashMap<>());
|
||||
|
||||
private static AWTPermission fullScreenExclusivePermission;
|
||||
private static Boolean xrandrExtSupported;
|
||||
@@ -119,8 +118,7 @@ public final class X11GraphicsDevice extends GraphicsDevice
|
||||
}
|
||||
|
||||
public SurfaceManager.ProxyCache getProxyCacheFor(SurfaceType st) {
|
||||
return x11ProxyCacheMap.computeIfAbsent(st,
|
||||
unused -> new SurfaceManager.ProxyCache());
|
||||
return x11ProxyCacheMap.computeIfAbsent(st, unused -> new SurfaceManager.ProxyCache());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -42,6 +42,8 @@ import java.util.Map;
|
||||
|
||||
import sun.awt.X11.XToolkit;
|
||||
import sun.java2d.SunGraphicsEnvironment;
|
||||
import sun.java2d.SurfaceManagerFactory;
|
||||
import sun.java2d.UnixSurfaceManagerFactory;
|
||||
import sun.java2d.xr.XRSurfaceData;
|
||||
|
||||
/**
|
||||
@@ -134,6 +136,10 @@ public final class X11GraphicsEnvironment extends SunGraphicsEnvironment impleme
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
// Install the correct surface manager factory.
|
||||
SurfaceManagerFactory.setInstance(new UnixSurfaceManagerFactory());
|
||||
|
||||
}
|
||||
|
||||
private static boolean isVMWare() {
|
||||
|
||||
@@ -114,8 +114,6 @@ public class DefaultFrameDecoration extends FullFrameDecorationHelper {
|
||||
|
||||
@Override
|
||||
protected Rectangle getMaximizeButtonBounds() {
|
||||
if (!hasMaximizeButton()) return null;
|
||||
|
||||
int x = peer.getWidth() - BUTTON_SIZE * 2 - BUTTONS_RIGHT_PADDING
|
||||
- BUTTONS_PADDING - BORDER_SIZE;
|
||||
int y = (int) Math.floor((HEIGHT - BUTTON_SIZE + 1f) / 2);
|
||||
@@ -124,8 +122,6 @@ public class DefaultFrameDecoration extends FullFrameDecorationHelper {
|
||||
|
||||
@Override
|
||||
protected Rectangle getMinimizeButtonBounds() {
|
||||
if (!hasMinimizeButton()) return null;
|
||||
|
||||
int x = peer.getWidth() - BUTTON_SIZE * 3 - BUTTONS_RIGHT_PADDING
|
||||
- BUTTONS_PADDING * 2 - BORDER_SIZE;
|
||||
int y = (int) Math.floor((HEIGHT - BUTTON_SIZE + 1f) / 2);
|
||||
|
||||
@@ -47,7 +47,7 @@ public class WLDataSource {
|
||||
|
||||
private static native void setDnDActionsImpl(long nativePtr, int actions);
|
||||
|
||||
private static native void setDnDIconImpl(long nativePtr, int scale, int width, int height, int offsetX, int offsetY, int[] pixels);
|
||||
private static native void setDnDIconImpl(long nativePtr, int width, int height, int offsetX, int offsetY, int[] pixels);
|
||||
|
||||
WLDataSource(WLDataDevice dataDevice, int protocol, Transferable data) {
|
||||
var wlDataTransferer = (WLDataTransferer) WLDataTransferer.getInstance();
|
||||
@@ -96,7 +96,7 @@ public class WLDataSource {
|
||||
setDnDActionsImpl(nativePtr, actions);
|
||||
}
|
||||
|
||||
public void setDnDIcon(Image image, int scale, int offsetX, int offsetY) {
|
||||
public void setDnDIcon(Image image, int offsetX, int offsetY) {
|
||||
if (nativePtr == 0) {
|
||||
throw new IllegalStateException("Native pointer is null");
|
||||
}
|
||||
@@ -118,7 +118,7 @@ public class WLDataSource {
|
||||
bufferedImage.getRGB(0, 0, width, height, pixels, 0, width);
|
||||
}
|
||||
|
||||
setDnDIconImpl(nativePtr, scale, width, height, offsetX, offsetY, pixels);
|
||||
setDnDIconImpl(nativePtr, width, height, offsetX, offsetY, pixels);
|
||||
}
|
||||
|
||||
public synchronized void destroy() {
|
||||
|
||||
@@ -92,33 +92,21 @@ public class WLDragSourceContextPeer extends SunDragSourceContextPeer {
|
||||
this.dataDevice = dataDevice;
|
||||
}
|
||||
|
||||
private WLComponentPeer getPeer() {
|
||||
private long getComponentWlSurfacePtr() {
|
||||
var comp = getComponent();
|
||||
while (comp != null) {
|
||||
var peer = AWTAccessor.getComponentAccessor().getPeer(comp);
|
||||
if (peer instanceof WLComponentPeer wlPeer) {
|
||||
return wlPeer;
|
||||
return wlPeer.getSurface().getWlSurfacePtr();
|
||||
}
|
||||
comp = comp.getParent();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private WLMainSurface getSurface() {
|
||||
WLComponentPeer peer = getPeer();
|
||||
if (peer != null) {
|
||||
return peer.getSurface();
|
||||
}
|
||||
return null;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startDrag(Transferable trans, long[] formats, Map<Long, DataFlavor> formatMap) {
|
||||
var mainSurface = getSurface();
|
||||
if (mainSurface == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// formats and formatMap are unused, because WLDataSource already references the same DataTransferer singleton
|
||||
var source = new WLDragSource(trans);
|
||||
|
||||
@@ -130,14 +118,13 @@ public class WLDragSourceContextPeer extends SunDragSourceContextPeer {
|
||||
var dragImage = getDragImage();
|
||||
if (dragImage != null) {
|
||||
var dragImageOffset = getDragImageOffset();
|
||||
source.setDnDIcon(dragImage,
|
||||
mainSurface.getGraphicsDevice().getDisplayScale(),
|
||||
dragImageOffset.x, dragImageOffset.y);
|
||||
source.setDnDIcon(dragImage, dragImageOffset.x, dragImageOffset.y);
|
||||
}
|
||||
|
||||
long eventSerial = WLToolkit.getInputState().pointerButtonSerial();
|
||||
|
||||
dataDevice.startDrag(source, mainSurface.getWlSurfacePtr(), eventSerial);
|
||||
var wlSurface = getComponentWlSurfacePtr();
|
||||
dataDevice.startDrag(source, wlSurface, eventSerial);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
package sun.awt.wl;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.awt.peer.FramePeer;
|
||||
import sun.awt.AWTAccessor;
|
||||
@@ -43,12 +42,6 @@ public class WLFramePeer extends WLDecoratedPeer implements FramePeer {
|
||||
super(target, target.isUndecorated(),
|
||||
Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.ICONIFIED),
|
||||
Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.MAXIMIZED_BOTH));
|
||||
AWTAccessor.getWindowAccessor().addWindowListener(target, new WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosing(WindowEvent e) {
|
||||
getFrame().removeNotify();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -36,6 +36,8 @@ import java.util.Optional;
|
||||
|
||||
import sun.awt.HiDPIInfoProvider;
|
||||
import sun.java2d.SunGraphicsEnvironment;
|
||||
import sun.java2d.SurfaceManagerFactory;
|
||||
import sun.java2d.UnixSurfaceManagerFactory;
|
||||
import sun.util.logging.PlatformLogger;
|
||||
import sun.util.logging.PlatformLogger.Level;
|
||||
|
||||
@@ -56,6 +58,7 @@ public class WLGraphicsEnvironment extends SunGraphicsEnvironment implements HiD
|
||||
|
||||
static {
|
||||
System.loadLibrary("awt");
|
||||
SurfaceManagerFactory.setInstance(new UnixSurfaceManagerFactory());
|
||||
|
||||
debugScaleEnabled = SunGraphicsEnvironment.isUIScaleEnabled() && SunGraphicsEnvironment.getDebugScale() >= 1;
|
||||
|
||||
|
||||
@@ -24,16 +24,11 @@
|
||||
*/
|
||||
package sun.awt.wl;
|
||||
|
||||
import sun.awt.SunToolkit;
|
||||
|
||||
import java.awt.Point;
|
||||
import java.awt.Window;
|
||||
import java.awt.peer.MouseInfoPeer;
|
||||
|
||||
public class WLMouseInfoPeer implements MouseInfoPeer, SunToolkit.RelativePointerMovementInfoProvider {
|
||||
private final Object mouseDeltaLock = new Object();
|
||||
private double mouseDeltaX = 0.0;
|
||||
private double mouseDeltaY = 0.0;
|
||||
public class WLMouseInfoPeer implements MouseInfoPeer {
|
||||
|
||||
@Override
|
||||
public int fillPointWithCoords(Point point) {
|
||||
@@ -60,23 +55,4 @@ public class WLMouseInfoPeer implements MouseInfoPeer, SunToolkit.RelativePointe
|
||||
return HOLDER.instance;
|
||||
}
|
||||
|
||||
void accumulatePointerDelta(double dx, double dy) {
|
||||
synchronized (mouseDeltaLock) {
|
||||
mouseDeltaX += dx;
|
||||
mouseDeltaY += dy;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Point getAccumulatedMouseDeltaAndReset() {
|
||||
var p = new Point();
|
||||
synchronized (mouseDeltaLock) {
|
||||
int idx = (int) mouseDeltaX;
|
||||
int idy = (int) mouseDeltaY;
|
||||
p.setLocation(idx, idy);
|
||||
mouseDeltaX = mouseDeltaX - idx;
|
||||
mouseDeltaY = mouseDeltaY - idy;
|
||||
}
|
||||
return p;
|
||||
}
|
||||
}
|
||||
@@ -299,10 +299,6 @@ public class WLToolkit extends UNIXToolkit implements Runnable {
|
||||
private static WLInputState inputState = WLInputState.initialState();
|
||||
private static WLKeyboard keyboard;
|
||||
|
||||
private static void dispatchRelativePointerEvent(double dx, double dy) {
|
||||
WLMouseInfoPeer.getInstance().accumulatePointerDelta(dx, dy);
|
||||
}
|
||||
|
||||
private static void dispatchPointerEvent(WLPointerEvent e) {
|
||||
// Invoked from the native code
|
||||
assert EventQueue.isDispatchThread();
|
||||
@@ -447,6 +443,7 @@ public class WLToolkit extends UNIXToolkit implements Runnable {
|
||||
final WLInputState newInputState = inputState.updatedFromKeyboardLeaveEvent(serial, surfacePtr);
|
||||
final WLWindowPeer peer = peerFromSurface(surfacePtr);
|
||||
if (peer != null && peer.getTarget() instanceof Window window) {
|
||||
((WLToolkit) Toolkit.getDefaultToolkit()).ungrab(window);
|
||||
final WindowEvent winLostFocusEvent = new WindowEvent(window, WindowEvent.WINDOW_LOST_FOCUS);
|
||||
WLKeyboardFocusManagerPeer.getInstance().setCurrentFocusedWindow(null);
|
||||
WLKeyboardFocusManagerPeer.getInstance().setCurrentFocusOwner(null);
|
||||
@@ -987,10 +984,9 @@ public class WLToolkit extends UNIXToolkit implements Runnable {
|
||||
|
||||
var peer = AWTAccessor.getComponentAccessor().getPeer(w);
|
||||
if (peer instanceof WLWindowPeer windowPeer) {
|
||||
windowPeer.ungrab(false);
|
||||
windowPeer.ungrab();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns if the java.awt.Desktop class is supported on the current
|
||||
* desktop.
|
||||
|
||||
@@ -33,7 +33,6 @@ import sun.java2d.wl.WLSMSurfaceData;
|
||||
|
||||
import javax.swing.JRootPane;
|
||||
import javax.swing.RootPaneContainer;
|
||||
import java.awt.AWTEvent;
|
||||
import java.awt.AlphaComposite;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
@@ -101,7 +100,7 @@ public class WLWindowPeer extends WLComponentPeer implements WindowPeer, Surface
|
||||
|
||||
@Override
|
||||
protected void wlSetVisible(boolean v) {
|
||||
if (!v) ungrab(true);
|
||||
if (!v) ungrab();
|
||||
|
||||
if (v && targetIsWlPopup() && shouldBeFocusedOnShowing()) {
|
||||
requestWindowFocus();
|
||||
@@ -205,7 +204,7 @@ public class WLWindowPeer extends WLComponentPeer implements WindowPeer, Surface
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
ungrab(true);
|
||||
ungrab();
|
||||
resetCornerMasks();
|
||||
super.dispose();
|
||||
}
|
||||
@@ -247,17 +246,15 @@ public class WLWindowPeer extends WLComponentPeer implements WindowPeer, Surface
|
||||
|
||||
public void grab() {
|
||||
if (grabbingWindow != null && !isGrabbing()) {
|
||||
grabbingWindow.ungrab(false);
|
||||
grabbingWindow.ungrab();
|
||||
}
|
||||
grabbingWindow = this;
|
||||
}
|
||||
|
||||
public void ungrab(boolean externalUngrab) {
|
||||
public void ungrab() {
|
||||
if (isGrabbing()) {
|
||||
grabbingWindow = null;
|
||||
if (externalUngrab) {
|
||||
WLToolkit.postEvent(new UngrabEvent(getTarget()));
|
||||
}
|
||||
WLToolkit.postEvent(new UngrabEvent(getTarget()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -265,13 +262,6 @@ public class WLWindowPeer extends WLComponentPeer implements WindowPeer, Surface
|
||||
return this == grabbingWindow;
|
||||
}
|
||||
|
||||
@Override
|
||||
void handleJavaWindowFocusEvent(AWTEvent e) {
|
||||
if (e.getID() == WindowEvent.WINDOW_LOST_FOCUS) {
|
||||
ungrab(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BufferedImage getClientAreaSnapshot(int x, int y, int width, int height) {
|
||||
// Move the coordinate system to the client area
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
|
||||
package sun.java2d;
|
||||
|
||||
import java.awt.GraphicsConfiguration;
|
||||
import java.awt.Image;
|
||||
|
||||
import sun.awt.X11GraphicsConfig;
|
||||
import sun.awt.image.SunVolatileImage;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.awt.image.VolatileSurfaceManager;
|
||||
import sun.java2d.opengl.GLXGraphicsConfig;
|
||||
import sun.java2d.opengl.GLXVolatileSurfaceManager;
|
||||
import sun.java2d.vulkan.VKOffscreenGraphicsConfig;
|
||||
import sun.java2d.vulkan.WLVKGraphicsConfig;
|
||||
import sun.java2d.vulkan.VKVolatileSurfaceManager;
|
||||
import sun.java2d.wl.WLVolatileSurfaceManager;
|
||||
import sun.java2d.x11.X11VolatileSurfaceManager;
|
||||
import sun.java2d.xr.*;
|
||||
|
||||
/**
|
||||
* The SurfaceManagerFactory that creates VolatileSurfaceManager
|
||||
* implementations for the Unix volatile images.
|
||||
*/
|
||||
public class UnixSurfaceManagerFactory extends SurfaceManagerFactory {
|
||||
|
||||
/**
|
||||
* Creates a new instance of a VolatileSurfaceManager given any
|
||||
* arbitrary SunVolatileImage. An optional context Object can be supplied
|
||||
* as a way for the caller to pass pipeline-specific context data to
|
||||
* the VolatileSurfaceManager (such as a backbuffer handle, for example).
|
||||
*
|
||||
* For Unix platforms, this method returns either an X11- or a GLX-
|
||||
* specific VolatileSurfaceManager based on the GraphicsConfiguration
|
||||
* under which the SunVolatileImage was created.
|
||||
*/
|
||||
public VolatileSurfaceManager createVolatileManager(SunVolatileImage vImg,
|
||||
Object context)
|
||||
{
|
||||
GraphicsConfiguration gc = vImg.getGraphicsConfig();
|
||||
|
||||
if (gc instanceof GLXGraphicsConfig) {
|
||||
return new GLXVolatileSurfaceManager(vImg, context);
|
||||
} else if(gc instanceof XRGraphicsConfig) {
|
||||
return new XRVolatileSurfaceManager(vImg, context);
|
||||
} else if (gc instanceof X11GraphicsConfig){
|
||||
return new X11VolatileSurfaceManager(vImg, context);
|
||||
} else if (gc instanceof WLVKGraphicsConfig) {
|
||||
return new VKVolatileSurfaceManager(vImg, context);
|
||||
} else if (gc instanceof VKOffscreenGraphicsConfig) {
|
||||
return new VKVolatileSurfaceManager(vImg, context);
|
||||
} else {
|
||||
return new WLVolatileSurfaceManager(vImg, context);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SurfaceManager createTextureWrapperSurfaceManager(GraphicsConfiguration gc, Image image, long texture) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
@@ -49,7 +49,6 @@ import sun.awt.X11GraphicsEnvironment;
|
||||
import sun.awt.image.OffScreenImage;
|
||||
import sun.awt.image.SunVolatileImage;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.awt.image.VolatileSurfaceManager;
|
||||
import sun.java2d.SunGraphics2D;
|
||||
import sun.java2d.Surface;
|
||||
import sun.java2d.SurfaceData;
|
||||
@@ -73,8 +72,7 @@ public final class GLXGraphicsConfig
|
||||
private long pConfigInfo;
|
||||
private ContextCapabilities oglCaps;
|
||||
private final OGLContext context;
|
||||
private final SurfaceManager.ProxyCache surfaceDataProxyCache =
|
||||
new SurfaceManager.ProxyCache();
|
||||
private final SurfaceManager.ProxyCache surfaceDataProxyCache = new SurfaceManager.ProxyCache();
|
||||
|
||||
private static native long getGLXConfigInfo(int screennum, int visualnum);
|
||||
private static native int getOGLCapabilities(long configInfo);
|
||||
@@ -415,10 +413,4 @@ public final class GLXGraphicsConfig
|
||||
public ContextCapabilities getContextCapabilities() {
|
||||
return oglCaps;
|
||||
}
|
||||
|
||||
@Override
|
||||
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
|
||||
Object context) {
|
||||
return new GLXVolatileSurfaceManager(image, context);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,14 +30,11 @@ import sun.awt.X11GraphicsConfig;
|
||||
import sun.awt.X11GraphicsDevice;
|
||||
import sun.awt.X11GraphicsEnvironment;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.awt.image.SunVolatileImage;
|
||||
import sun.awt.image.VolatileSurfaceManager;
|
||||
import sun.java2d.SurfaceData;
|
||||
|
||||
public class XRGraphicsConfig extends X11GraphicsConfig implements
|
||||
SurfaceManager.ProxiedGraphicsConfig {
|
||||
private final SurfaceManager.ProxyCache surfaceDataProxyCache =
|
||||
new SurfaceManager.ProxyCache();
|
||||
private final SurfaceManager.ProxyCache surfaceDataProxyCache = new SurfaceManager.ProxyCache();
|
||||
|
||||
private XRGraphicsConfig(X11GraphicsDevice device, int visualnum,
|
||||
int depth, int colormap, boolean doubleBuffer) {
|
||||
@@ -62,10 +59,4 @@ public class XRGraphicsConfig extends X11GraphicsConfig implements
|
||||
public SurfaceManager.ProxyCache getSurfaceDataProxyCache() {
|
||||
return surfaceDataProxyCache;
|
||||
}
|
||||
|
||||
@Override
|
||||
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
|
||||
Object context) {
|
||||
return new XRVolatileSurfaceManager(image, context);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1073,8 +1073,7 @@ Java_sun_awt_wl_WLDataSource_setDnDActionsImpl(JNIEnv *env,
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_sun_awt_wl_WLDataSource_setDnDIconImpl
|
||||
(JNIEnv * env, jclass clazz, jlong nativePtr, jint scale,
|
||||
jint width, jint height, jint offsetX, jint offsetY, jintArray pixels)
|
||||
(JNIEnv * env, jclass clazz, jlong nativePtr, jint width, jint height, jint offsetX, jint offsetY, jintArray pixels)
|
||||
{
|
||||
struct DataSource *source = jlong_to_ptr(nativePtr);
|
||||
|
||||
@@ -1127,10 +1126,6 @@ JNIEXPORT void JNICALL Java_sun_awt_wl_WLDataSource_setDnDIconImpl
|
||||
wl_surface_attach(source->dragIcon, source->dragIconBuffer, offsetX, offsetY);
|
||||
#endif
|
||||
|
||||
if (scale >= 1) {
|
||||
wl_surface_set_buffer_scale(source->dragIcon, scale);
|
||||
}
|
||||
|
||||
wl_surface_damage_buffer(source->dragIcon, 0, 0, width, height);
|
||||
|
||||
// NOTE: we still need to commit the surface, this is done immediately after start_drag
|
||||
|
||||
@@ -75,7 +75,6 @@ struct wl_seat *wl_seat = NULL;
|
||||
|
||||
struct wl_keyboard *wl_keyboard; // optional, check for NULL before use
|
||||
struct wl_pointer *wl_pointer; // optional, check for NULL before use
|
||||
struct zwp_relative_pointer_manager_v1* relative_pointer_manager; // optional, check for NULL before use
|
||||
|
||||
#define MAX_CURSOR_SCALE 100
|
||||
struct wl_cursor_theme *cursor_themes[MAX_CURSOR_SCALE] = {NULL};
|
||||
@@ -124,7 +123,6 @@ static jmethodID dispatchKeyboardKeyEventMID;
|
||||
static jmethodID dispatchKeyboardModifiersEventMID;
|
||||
static jmethodID dispatchKeyboardEnterEventMID;
|
||||
static jmethodID dispatchKeyboardLeaveEventMID;
|
||||
static jmethodID dispatchRelativePointerEventMID;
|
||||
|
||||
JNIEnv *getEnv() {
|
||||
JNIEnv *env;
|
||||
@@ -461,31 +459,6 @@ static const struct wl_keyboard_listener wl_keyboard_listener = {
|
||||
.key = wl_keyboard_key
|
||||
};
|
||||
|
||||
static void
|
||||
wl_relative_motion(void *data,
|
||||
struct zwp_relative_pointer_v1 *zwp_relative_pointer_v1,
|
||||
uint32_t utime_hi,
|
||||
uint32_t utime_lo,
|
||||
wl_fixed_t dx,
|
||||
wl_fixed_t dy,
|
||||
wl_fixed_t dx_unaccel,
|
||||
wl_fixed_t dy_unaccel)
|
||||
{
|
||||
double ddx = wl_fixed_to_double(dx);
|
||||
double ddy = wl_fixed_to_double(dy);
|
||||
JNIEnv* env = getEnv();
|
||||
|
||||
(*env)->CallStaticVoidMethod(env,
|
||||
tkClass,
|
||||
dispatchRelativePointerEventMID,
|
||||
ddx, ddy);
|
||||
JNU_CHECK_EXCEPTION(env);
|
||||
}
|
||||
|
||||
static const struct zwp_relative_pointer_v1_listener relative_pointer_listener = {
|
||||
.relative_motion = wl_relative_motion
|
||||
};
|
||||
|
||||
static void
|
||||
wl_seat_capabilities(void *data, struct wl_seat *wl_seat, uint32_t capabilities)
|
||||
{
|
||||
@@ -496,14 +469,6 @@ wl_seat_capabilities(void *data, struct wl_seat *wl_seat, uint32_t capabilities)
|
||||
wl_pointer = wl_seat_get_pointer(wl_seat);
|
||||
if (wl_pointer != NULL) {
|
||||
wl_pointer_add_listener(wl_pointer, &wl_pointer_listener, NULL);
|
||||
if (relative_pointer_manager != NULL) {
|
||||
struct zwp_relative_pointer_v1* rptr
|
||||
= zwp_relative_pointer_manager_v1_get_relative_pointer(relative_pointer_manager,
|
||||
wl_pointer);
|
||||
if (rptr != NULL) {
|
||||
zwp_relative_pointer_v1_add_listener(rptr, &relative_pointer_listener, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (!has_pointer && wl_pointer != NULL) {
|
||||
wl_pointer_release(wl_pointer);
|
||||
@@ -596,8 +561,6 @@ registry_global(void *data, struct wl_registry *wl_registry,
|
||||
xdg_activation_v1 = wl_registry_bind(wl_registry, name, &xdg_activation_v1_interface, 1);
|
||||
} else if (strcmp(interface, gtk_shell1_interface.name) == 0) {
|
||||
gtk_shell1 = wl_registry_bind(wl_registry, name, >k_shell1_interface, 1);
|
||||
} else if (strcmp(interface, zwp_relative_pointer_manager_v1_interface.name) == 0) {
|
||||
relative_pointer_manager = wl_registry_bind(wl_registry, name, &zwp_relative_pointer_manager_v1_interface, 1);
|
||||
} else if (strcmp(interface, wl_data_device_manager_interface.name) == 0) {
|
||||
wl_ddm = wl_registry_bind(wl_registry, name,&wl_data_device_manager_interface, 3);
|
||||
} else if (strcmp(interface, zwp_primary_selection_device_manager_v1_interface.name) == 0) {
|
||||
@@ -743,10 +706,6 @@ initJavaRefs(JNIEnv *env, jclass clazz)
|
||||
"dispatchKeyboardModifiersEvent",
|
||||
"(J)V"),
|
||||
JNI_FALSE);
|
||||
CHECK_NULL_RETURN(dispatchRelativePointerEventMID = (*env)->GetStaticMethodID(env, tkClass,
|
||||
"dispatchRelativePointerEvent",
|
||||
"(DD)V"),
|
||||
JNI_FALSE);
|
||||
|
||||
jclass wlgeClass = (*env)->FindClass(env, "sun/awt/wl/WLGraphicsEnvironment");
|
||||
CHECK_NULL_RETURN(wlgeClass, JNI_FALSE);
|
||||
|
||||
@@ -25,14 +25,11 @@
|
||||
|
||||
#include <wayland-client.h>
|
||||
#include <wayland-cursor.h>
|
||||
|
||||
#include "xdg-shell-client-protocol.h"
|
||||
#include "xdg-activation-v1-client-protocol.h"
|
||||
#include "xdg-output-unstable-v1-client-protocol.h"
|
||||
#include "primary-selection-client-protocol.h"
|
||||
#include "viewporter-client-protocol.h"
|
||||
#include "relative-pointer-unstable-v1-client-protocol.h"
|
||||
|
||||
#include "jvm_md.h"
|
||||
#include "jni_util.h"
|
||||
|
||||
@@ -68,7 +65,7 @@ extern struct wl_cursor_theme *wl_cursor_theme;
|
||||
extern struct wl_data_device_manager *wl_ddm;
|
||||
extern struct zwp_primary_selection_device_manager_v1 *zwp_selection_dm; // optional, check for NULL before use
|
||||
extern struct zxdg_output_manager_v1 *zxdg_output_manager_v1; // optional, check for NULL before use
|
||||
extern struct zwp_relative_pointer_manager_v1* relative_pointer_manager;
|
||||
|
||||
JNIEnv *getEnv();
|
||||
|
||||
int wlFlushToServer(JNIEnv* env);
|
||||
|
||||
@@ -1,301 +0,0 @@
|
||||
/* Generated by wayland-scanner 1.19.0 */
|
||||
|
||||
#ifndef RELATIVE_POINTER_UNSTABLE_V1_CLIENT_PROTOCOL_H
|
||||
#define RELATIVE_POINTER_UNSTABLE_V1_CLIENT_PROTOCOL_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include "wayland-client.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @page page_relative_pointer_unstable_v1 The relative_pointer_unstable_v1 protocol
|
||||
* protocol for relative pointer motion events
|
||||
*
|
||||
* @section page_desc_relative_pointer_unstable_v1 Description
|
||||
*
|
||||
* This protocol specifies a set of interfaces used for making clients able to
|
||||
* receive relative pointer events not obstructed by barriers (such as the
|
||||
* monitor edge or other pointer barriers).
|
||||
*
|
||||
* To start receiving relative pointer events, a client must first bind the
|
||||
* global interface "wp_relative_pointer_manager" which, if a compositor
|
||||
* supports relative pointer motion events, is exposed by the registry. After
|
||||
* having created the relative pointer manager proxy object, the client uses
|
||||
* it to create the actual relative pointer object using the
|
||||
* "get_relative_pointer" request given a wl_pointer. The relative pointer
|
||||
* motion events will then, when applicable, be transmitted via the proxy of
|
||||
* the newly created relative pointer object. See the documentation of the
|
||||
* relative pointer interface for more details.
|
||||
*
|
||||
* Warning! The protocol described in this file is experimental and backward
|
||||
* incompatible changes may be made. Backward compatible changes may be added
|
||||
* together with the corresponding interface version bump. Backward
|
||||
* incompatible changes are done by bumping the version number in the protocol
|
||||
* and interface names and resetting the interface version. Once the protocol
|
||||
* is to be declared stable, the 'z' prefix and the version number in the
|
||||
* protocol and interface names are removed and the interface version number is
|
||||
* reset.
|
||||
*
|
||||
* @section page_ifaces_relative_pointer_unstable_v1 Interfaces
|
||||
* - @subpage page_iface_zwp_relative_pointer_manager_v1 - get relative pointer objects
|
||||
* - @subpage page_iface_zwp_relative_pointer_v1 - relative pointer object
|
||||
* @section page_copyright_relative_pointer_unstable_v1 Copyright
|
||||
* <pre>
|
||||
*
|
||||
* Copyright © 2014 Jonas Ådahl
|
||||
* Copyright © 2015 Red Hat Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
* </pre>
|
||||
*/
|
||||
struct wl_pointer;
|
||||
struct zwp_relative_pointer_manager_v1;
|
||||
struct zwp_relative_pointer_v1;
|
||||
|
||||
#ifndef ZWP_RELATIVE_POINTER_MANAGER_V1_INTERFACE
|
||||
#define ZWP_RELATIVE_POINTER_MANAGER_V1_INTERFACE
|
||||
/**
|
||||
* @page page_iface_zwp_relative_pointer_manager_v1 zwp_relative_pointer_manager_v1
|
||||
* @section page_iface_zwp_relative_pointer_manager_v1_desc Description
|
||||
*
|
||||
* A global interface used for getting the relative pointer object for a
|
||||
* given pointer.
|
||||
* @section page_iface_zwp_relative_pointer_manager_v1_api API
|
||||
* See @ref iface_zwp_relative_pointer_manager_v1.
|
||||
*/
|
||||
/**
|
||||
* @defgroup iface_zwp_relative_pointer_manager_v1 The zwp_relative_pointer_manager_v1 interface
|
||||
*
|
||||
* A global interface used for getting the relative pointer object for a
|
||||
* given pointer.
|
||||
*/
|
||||
extern const struct wl_interface zwp_relative_pointer_manager_v1_interface;
|
||||
#endif
|
||||
#ifndef ZWP_RELATIVE_POINTER_V1_INTERFACE
|
||||
#define ZWP_RELATIVE_POINTER_V1_INTERFACE
|
||||
/**
|
||||
* @page page_iface_zwp_relative_pointer_v1 zwp_relative_pointer_v1
|
||||
* @section page_iface_zwp_relative_pointer_v1_desc Description
|
||||
*
|
||||
* A wp_relative_pointer object is an extension to the wl_pointer interface
|
||||
* used for emitting relative pointer events. It shares the same focus as
|
||||
* wl_pointer objects of the same seat and will only emit events when it has
|
||||
* focus.
|
||||
* @section page_iface_zwp_relative_pointer_v1_api API
|
||||
* See @ref iface_zwp_relative_pointer_v1.
|
||||
*/
|
||||
/**
|
||||
* @defgroup iface_zwp_relative_pointer_v1 The zwp_relative_pointer_v1 interface
|
||||
*
|
||||
* A wp_relative_pointer object is an extension to the wl_pointer interface
|
||||
* used for emitting relative pointer events. It shares the same focus as
|
||||
* wl_pointer objects of the same seat and will only emit events when it has
|
||||
* focus.
|
||||
*/
|
||||
extern const struct wl_interface zwp_relative_pointer_v1_interface;
|
||||
#endif
|
||||
|
||||
#define ZWP_RELATIVE_POINTER_MANAGER_V1_DESTROY 0
|
||||
#define ZWP_RELATIVE_POINTER_MANAGER_V1_GET_RELATIVE_POINTER 1
|
||||
|
||||
|
||||
/**
|
||||
* @ingroup iface_zwp_relative_pointer_manager_v1
|
||||
*/
|
||||
#define ZWP_RELATIVE_POINTER_MANAGER_V1_DESTROY_SINCE_VERSION 1
|
||||
/**
|
||||
* @ingroup iface_zwp_relative_pointer_manager_v1
|
||||
*/
|
||||
#define ZWP_RELATIVE_POINTER_MANAGER_V1_GET_RELATIVE_POINTER_SINCE_VERSION 1
|
||||
|
||||
/** @ingroup iface_zwp_relative_pointer_manager_v1 */
|
||||
static inline void
|
||||
zwp_relative_pointer_manager_v1_set_user_data(struct zwp_relative_pointer_manager_v1 *zwp_relative_pointer_manager_v1, void *user_data)
|
||||
{
|
||||
wl_proxy_set_user_data((struct wl_proxy *) zwp_relative_pointer_manager_v1, user_data);
|
||||
}
|
||||
|
||||
/** @ingroup iface_zwp_relative_pointer_manager_v1 */
|
||||
static inline void *
|
||||
zwp_relative_pointer_manager_v1_get_user_data(struct zwp_relative_pointer_manager_v1 *zwp_relative_pointer_manager_v1)
|
||||
{
|
||||
return wl_proxy_get_user_data((struct wl_proxy *) zwp_relative_pointer_manager_v1);
|
||||
}
|
||||
|
||||
static inline uint32_t
|
||||
zwp_relative_pointer_manager_v1_get_version(struct zwp_relative_pointer_manager_v1 *zwp_relative_pointer_manager_v1)
|
||||
{
|
||||
return wl_proxy_get_version((struct wl_proxy *) zwp_relative_pointer_manager_v1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_zwp_relative_pointer_manager_v1
|
||||
*
|
||||
* Used by the client to notify the server that it will no longer use this
|
||||
* relative pointer manager object.
|
||||
*/
|
||||
static inline void
|
||||
zwp_relative_pointer_manager_v1_destroy(struct zwp_relative_pointer_manager_v1 *zwp_relative_pointer_manager_v1)
|
||||
{
|
||||
wl_proxy_marshal((struct wl_proxy *) zwp_relative_pointer_manager_v1,
|
||||
ZWP_RELATIVE_POINTER_MANAGER_V1_DESTROY);
|
||||
|
||||
wl_proxy_destroy((struct wl_proxy *) zwp_relative_pointer_manager_v1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_zwp_relative_pointer_manager_v1
|
||||
*
|
||||
* Create a relative pointer interface given a wl_pointer object. See the
|
||||
* wp_relative_pointer interface for more details.
|
||||
*/
|
||||
static inline struct zwp_relative_pointer_v1 *
|
||||
zwp_relative_pointer_manager_v1_get_relative_pointer(struct zwp_relative_pointer_manager_v1 *zwp_relative_pointer_manager_v1, struct wl_pointer *pointer)
|
||||
{
|
||||
struct wl_proxy *id;
|
||||
|
||||
id = wl_proxy_marshal_constructor((struct wl_proxy *) zwp_relative_pointer_manager_v1,
|
||||
ZWP_RELATIVE_POINTER_MANAGER_V1_GET_RELATIVE_POINTER, &zwp_relative_pointer_v1_interface, NULL, pointer);
|
||||
|
||||
return (struct zwp_relative_pointer_v1 *) id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_zwp_relative_pointer_v1
|
||||
* @struct zwp_relative_pointer_v1_listener
|
||||
*/
|
||||
struct zwp_relative_pointer_v1_listener {
|
||||
/**
|
||||
* relative pointer motion
|
||||
*
|
||||
* Relative x/y pointer motion from the pointer of the seat
|
||||
* associated with this object.
|
||||
*
|
||||
* A relative motion is in the same dimension as regular wl_pointer
|
||||
* motion events, except they do not represent an absolute
|
||||
* position. For example, moving a pointer from (x, y) to (x', y')
|
||||
* would have the equivalent relative motion (x' - x, y' - y). If a
|
||||
* pointer motion caused the absolute pointer position to be
|
||||
* clipped by for example the edge of the monitor, the relative
|
||||
* motion is unaffected by the clipping and will represent the
|
||||
* unclipped motion.
|
||||
*
|
||||
* This event also contains non-accelerated motion deltas. The
|
||||
* non-accelerated delta is, when applicable, the regular pointer
|
||||
* motion delta as it was before having applied motion acceleration
|
||||
* and other transformations such as normalization.
|
||||
*
|
||||
* Note that the non-accelerated delta does not represent 'raw'
|
||||
* events as they were read from some device. Pointer motion
|
||||
* acceleration is device- and configuration-specific and
|
||||
* non-accelerated deltas and accelerated deltas may have the same
|
||||
* value on some devices.
|
||||
*
|
||||
* Relative motions are not coupled to wl_pointer.motion events,
|
||||
* and can be sent in combination with such events, but also
|
||||
* independently. There may also be scenarios where
|
||||
* wl_pointer.motion is sent, but there is no relative motion. The
|
||||
* order of an absolute and relative motion event originating from
|
||||
* the same physical motion is not guaranteed.
|
||||
*
|
||||
* If the client needs button events or focus state, it can receive
|
||||
* them from a wl_pointer object of the same seat that the
|
||||
* wp_relative_pointer object is associated with.
|
||||
* @param utime_hi high 32 bits of a 64 bit timestamp with microsecond granularity
|
||||
* @param utime_lo low 32 bits of a 64 bit timestamp with microsecond granularity
|
||||
* @param dx the x component of the motion vector
|
||||
* @param dy the y component of the motion vector
|
||||
* @param dx_unaccel the x component of the unaccelerated motion vector
|
||||
* @param dy_unaccel the y component of the unaccelerated motion vector
|
||||
*/
|
||||
void (*relative_motion)(void *data,
|
||||
struct zwp_relative_pointer_v1 *zwp_relative_pointer_v1,
|
||||
uint32_t utime_hi,
|
||||
uint32_t utime_lo,
|
||||
wl_fixed_t dx,
|
||||
wl_fixed_t dy,
|
||||
wl_fixed_t dx_unaccel,
|
||||
wl_fixed_t dy_unaccel);
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup iface_zwp_relative_pointer_v1
|
||||
*/
|
||||
static inline int
|
||||
zwp_relative_pointer_v1_add_listener(struct zwp_relative_pointer_v1 *zwp_relative_pointer_v1,
|
||||
const struct zwp_relative_pointer_v1_listener *listener, void *data)
|
||||
{
|
||||
return wl_proxy_add_listener((struct wl_proxy *) zwp_relative_pointer_v1,
|
||||
(void (**)(void)) listener, data);
|
||||
}
|
||||
|
||||
#define ZWP_RELATIVE_POINTER_V1_DESTROY 0
|
||||
|
||||
/**
|
||||
* @ingroup iface_zwp_relative_pointer_v1
|
||||
*/
|
||||
#define ZWP_RELATIVE_POINTER_V1_RELATIVE_MOTION_SINCE_VERSION 1
|
||||
|
||||
/**
|
||||
* @ingroup iface_zwp_relative_pointer_v1
|
||||
*/
|
||||
#define ZWP_RELATIVE_POINTER_V1_DESTROY_SINCE_VERSION 1
|
||||
|
||||
/** @ingroup iface_zwp_relative_pointer_v1 */
|
||||
static inline void
|
||||
zwp_relative_pointer_v1_set_user_data(struct zwp_relative_pointer_v1 *zwp_relative_pointer_v1, void *user_data)
|
||||
{
|
||||
wl_proxy_set_user_data((struct wl_proxy *) zwp_relative_pointer_v1, user_data);
|
||||
}
|
||||
|
||||
/** @ingroup iface_zwp_relative_pointer_v1 */
|
||||
static inline void *
|
||||
zwp_relative_pointer_v1_get_user_data(struct zwp_relative_pointer_v1 *zwp_relative_pointer_v1)
|
||||
{
|
||||
return wl_proxy_get_user_data((struct wl_proxy *) zwp_relative_pointer_v1);
|
||||
}
|
||||
|
||||
static inline uint32_t
|
||||
zwp_relative_pointer_v1_get_version(struct zwp_relative_pointer_v1 *zwp_relative_pointer_v1)
|
||||
{
|
||||
return wl_proxy_get_version((struct wl_proxy *) zwp_relative_pointer_v1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_zwp_relative_pointer_v1
|
||||
*/
|
||||
static inline void
|
||||
zwp_relative_pointer_v1_destroy(struct zwp_relative_pointer_v1 *zwp_relative_pointer_v1)
|
||||
{
|
||||
wl_proxy_marshal((struct wl_proxy *) zwp_relative_pointer_v1,
|
||||
ZWP_RELATIVE_POINTER_V1_DESTROY);
|
||||
|
||||
wl_proxy_destroy((struct wl_proxy *) zwp_relative_pointer_v1);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,79 +0,0 @@
|
||||
/* Generated by wayland-scanner 1.19.0 */
|
||||
|
||||
/*
|
||||
* Copyright © 2014 Jonas Ådahl
|
||||
* Copyright © 2015 Red Hat Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include "wayland-util.h"
|
||||
|
||||
#ifndef __has_attribute
|
||||
# define __has_attribute(x) 0 /* Compatibility with non-clang compilers. */
|
||||
#endif
|
||||
|
||||
#if (__has_attribute(visibility) || defined(__GNUC__) && __GNUC__ >= 4)
|
||||
#define WL_PRIVATE __attribute__ ((visibility("hidden")))
|
||||
#else
|
||||
#define WL_PRIVATE
|
||||
#endif
|
||||
|
||||
extern const struct wl_interface wl_pointer_interface;
|
||||
extern const struct wl_interface zwp_relative_pointer_v1_interface;
|
||||
|
||||
static const struct wl_interface *relative_pointer_unstable_v1_types[] = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
&zwp_relative_pointer_v1_interface,
|
||||
&wl_pointer_interface,
|
||||
};
|
||||
|
||||
static const struct wl_message zwp_relative_pointer_manager_v1_requests[] = {
|
||||
{ "destroy", "", relative_pointer_unstable_v1_types + 0 },
|
||||
{ "get_relative_pointer", "no", relative_pointer_unstable_v1_types + 6 },
|
||||
};
|
||||
|
||||
WL_PRIVATE const struct wl_interface zwp_relative_pointer_manager_v1_interface = {
|
||||
"zwp_relative_pointer_manager_v1", 1,
|
||||
2, zwp_relative_pointer_manager_v1_requests,
|
||||
0, NULL,
|
||||
};
|
||||
|
||||
static const struct wl_message zwp_relative_pointer_v1_requests[] = {
|
||||
{ "destroy", "", relative_pointer_unstable_v1_types + 0 },
|
||||
};
|
||||
|
||||
static const struct wl_message zwp_relative_pointer_v1_events[] = {
|
||||
{ "relative_motion", "uuffff", relative_pointer_unstable_v1_types + 0 },
|
||||
};
|
||||
|
||||
WL_PRIVATE const struct wl_interface zwp_relative_pointer_v1_interface = {
|
||||
"zwp_relative_pointer_v1", 1,
|
||||
1, zwp_relative_pointer_v1_requests,
|
||||
1, zwp_relative_pointer_v1_events,
|
||||
};
|
||||
|
||||
@@ -91,8 +91,7 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
|
||||
private float scaleX;
|
||||
private float scaleY;
|
||||
|
||||
final SurfaceManager.ProxyCache surfaceDataProxyCache =
|
||||
new SurfaceManager.ProxyCache();
|
||||
final SurfaceManager.ProxyCache surfaceDataProxyCache = new SurfaceManager.ProxyCache();
|
||||
|
||||
static {
|
||||
|
||||
|
||||
@@ -36,6 +36,8 @@ import java.util.ListIterator;
|
||||
|
||||
import sun.awt.windows.WToolkit;
|
||||
import sun.java2d.SunGraphicsEnvironment;
|
||||
import sun.java2d.SurfaceManagerFactory;
|
||||
import sun.java2d.WindowsSurfaceManagerFactory;
|
||||
import sun.java2d.d3d.D3DGraphicsDevice;
|
||||
import sun.java2d.windows.WindowsFlags;
|
||||
|
||||
@@ -66,6 +68,9 @@ public final class Win32GraphicsEnvironment extends SunGraphicsEnvironment {
|
||||
WindowsFlags.initFlags();
|
||||
initDisplayWrapper();
|
||||
|
||||
// Install correct surface manager factory.
|
||||
SurfaceManagerFactory.setInstance(new WindowsSurfaceManagerFactory());
|
||||
|
||||
double sx = -1;
|
||||
double sy = -1;
|
||||
if (isUIScaleEnabled()) {
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package sun.java2d;
|
||||
|
||||
import java.awt.GraphicsConfiguration;
|
||||
import java.awt.Image;
|
||||
|
||||
import sun.awt.image.BufImgVolatileSurfaceManager;
|
||||
import sun.awt.image.SunVolatileImage;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.awt.image.VolatileSurfaceManager;
|
||||
import sun.java2d.d3d.D3DGraphicsConfig;
|
||||
import sun.java2d.d3d.D3DVolatileSurfaceManager;
|
||||
import sun.java2d.opengl.WGLGraphicsConfig;
|
||||
import sun.java2d.opengl.WGLVolatileSurfaceManager;
|
||||
|
||||
/**
|
||||
* The SurfaceManagerFactory that creates VolatileSurfaceManager
|
||||
* implementations for the Windows volatile images.
|
||||
*/
|
||||
public class WindowsSurfaceManagerFactory extends SurfaceManagerFactory {
|
||||
|
||||
/**
|
||||
* Creates a new instance of a VolatileSurfaceManager given any
|
||||
* arbitrary SunVolatileImage. An optional context Object can be supplied
|
||||
* as a way for the caller to pass pipeline-specific context data to
|
||||
* the VolatileSurfaceManager (such as a backbuffer handle, for example).
|
||||
*
|
||||
* For Windows platforms, this method returns a Windows-specific
|
||||
* VolatileSurfaceManager.
|
||||
*/
|
||||
public VolatileSurfaceManager createVolatileManager(SunVolatileImage vImg,
|
||||
Object context)
|
||||
{
|
||||
GraphicsConfiguration gc = vImg.getGraphicsConfig();
|
||||
if (gc instanceof D3DGraphicsConfig) {
|
||||
return new D3DVolatileSurfaceManager(vImg, context);
|
||||
} else if (gc instanceof WGLGraphicsConfig) {
|
||||
return new WGLVolatileSurfaceManager(vImg, context);
|
||||
} else {
|
||||
return new BufImgVolatileSurfaceManager(vImg, context);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SurfaceManager createTextureWrapperSurfaceManager(GraphicsConfiguration gc, Image image, long texture) {
|
||||
throw new UnsupportedOperationException("Not supported");
|
||||
}
|
||||
}
|
||||
@@ -39,7 +39,6 @@ import java.awt.image.VolatileImage;
|
||||
import sun.awt.Win32GraphicsConfig;
|
||||
import sun.awt.image.SunVolatileImage;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.awt.image.VolatileSurfaceManager;
|
||||
import sun.awt.windows.WComponentPeer;
|
||||
import sun.java2d.Surface;
|
||||
import sun.java2d.SurfaceData;
|
||||
@@ -52,7 +51,7 @@ import static sun.java2d.d3d.D3DContext.D3DContextCaps.*;
|
||||
|
||||
public final class D3DGraphicsConfig
|
||||
extends Win32GraphicsConfig
|
||||
implements AccelGraphicsConfig, SurfaceManager.Factory
|
||||
implements AccelGraphicsConfig
|
||||
{
|
||||
private static ImageCapabilities imageCaps = new D3DImageCaps();
|
||||
|
||||
@@ -308,10 +307,4 @@ public final class D3DGraphicsConfig
|
||||
public ContextCapabilities getContextCapabilities() {
|
||||
return device.getContextCapabilities();
|
||||
}
|
||||
|
||||
@Override
|
||||
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
|
||||
Object context) {
|
||||
return new D3DVolatileSurfaceManager(image, context);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,6 @@ import sun.awt.Win32GraphicsConfig;
|
||||
import sun.awt.Win32GraphicsDevice;
|
||||
import sun.awt.image.SunVolatileImage;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.awt.image.VolatileSurfaceManager;
|
||||
import sun.awt.windows.WComponentPeer;
|
||||
import sun.java2d.Disposer;
|
||||
import sun.java2d.DisposerRecord;
|
||||
@@ -74,8 +73,7 @@ public final class WGLGraphicsConfig
|
||||
private ContextCapabilities oglCaps;
|
||||
private final OGLContext context;
|
||||
private Object disposerReferent = new Object();
|
||||
private final SurfaceManager.ProxyCache surfaceDataProxyCache =
|
||||
new SurfaceManager.ProxyCache();
|
||||
private final SurfaceManager.ProxyCache surfaceDataProxyCache = new SurfaceManager.ProxyCache();
|
||||
|
||||
public static native int getDefaultPixFmt(int screennum);
|
||||
private static native boolean initWGL();
|
||||
@@ -434,10 +432,4 @@ public final class WGLGraphicsConfig
|
||||
public ContextCapabilities getContextCapabilities() {
|
||||
return oglCaps;
|
||||
}
|
||||
|
||||
@Override
|
||||
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
|
||||
Object context) {
|
||||
return new WGLVolatileSurfaceManager(image, context);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,14 +174,14 @@ runtime/cds/appcds/methodHandles/MethodHandlesAsCollectorTest.java initial_run g
|
||||
runtime/cds/SharedBaseAddress.java initial_run generic-all
|
||||
runtime/cds/appcds/methodHandles/MethodHandlesSpreadArgumentsTest.java initial_run generic-all
|
||||
|
||||
containers/docker/TestCPUAwareness.java JBR-9163 linux-6.14.0-1010-aws,linux-6.14.0-1011-aws,linux-6.14.0-1012-aws,linux-6.14.0-1013-aws
|
||||
containers/docker/TestCPUSets.java JBR-9164 linux-6.14.0-1010-aws,linux-6.14.0-1011-aws,linux-6.14.0-1012-aws,linux-6.14.0-1013-aws
|
||||
containers/docker/TestCPUAwareness.java JBR-9163 linux-6.14.0-1010-aws,linux-6.14.0-1011-aws,linux-6.14.0-1012-aws
|
||||
containers/docker/TestCPUSets.java JBR-9164 linux-6.14.0-1010-aws,linux-6.14.0-1011-aws,linux-6.14.0-1012-aws
|
||||
containers/docker/TestJcmd.java 8278102 linux-all
|
||||
containers/docker/TestJcmdWithSideCar.java JBR-9074 linux-6.14.0-1010-aws,linux-6.14.0-1011-aws,linux-6.14.0-1012-aws,linux-6.14.0-1013-aws
|
||||
containers/docker/TestJFREvents.java JBR-9165 linux-6.14.0-1010-aws,linux-6.14.0-1011-aws,linux-6.14.0-1012-aws,linux-6.14.0-1013-aws
|
||||
containers/docker/TestLimitsUpdating.java JBR-9166 linux-6.14.0-1010-aws,linux-6.14.0-1011-aws,linux-6.14.0-1012-aws,linux-6.14.0-1013-aws
|
||||
containers/docker/TestJcmdWithSideCar.java JBR-9074 linux-6.14.0-1010-aws,linux-6.14.0-1011-aws,linux-6.14.0-1012-aws
|
||||
containers/docker/TestJFREvents.java JBR-9165 linux-6.14.0-1010-aws,linux-6.14.0-1011-aws,linux-6.14.0-1012-aws
|
||||
containers/docker/TestLimitsUpdating.java JBR-9166 linux-6.14.0-1010-aws,linux-6.14.0-1011-aws,linux-6.14.0-1012-aws
|
||||
containers/docker/TestMemoryAwareness.java 8303470 linux-all
|
||||
containers/docker/TestMisc.java JBR-9167 linux-6.14.0-1010-aws,linux-6.14.0-1011-aws,linux-6.14.0-1012-aws,linux-6.14.0-1013-aws
|
||||
containers/docker/TestMisc.java JBR-9167 linux-6.14.0-1010-aws,linux-6.14.0-1011-aws,linux-6.14.0-1012-aws
|
||||
containers/docker/TestPids.java 8356277 linux-all
|
||||
|
||||
#############################################################################
|
||||
@@ -249,8 +249,6 @@ vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded005
|
||||
|
||||
vmTestbase/nsk/jdb/options/listconnectors/listconnectors001/listconnectors001.java initial_run windows-all
|
||||
|
||||
vmTestbase/nsk/jdi/Event/_itself_/event001/TestDescription.java JBR-8550 windows-all
|
||||
vmTestbase/nsk/jdi/Event/_itself_/event002/TestDescription.java JBR-8550 windows-all
|
||||
vmTestbase/nsk/jdi/LaunchingConnector/launch/launch001/TestDescription.java initial_run windows-all
|
||||
vmTestbase/nsk/jdi/LaunchingConnector/launch/launch003/TestDescription.java initial_run windows-all
|
||||
vmTestbase/nsk/jdi/LaunchingConnector/launchnosuspend/launchnosuspend001/TestDescription.java initial_run windows-all
|
||||
|
||||
@@ -30,18 +30,14 @@ import java.io.InputStreamReader;
|
||||
/**
|
||||
* @test
|
||||
* @summary VerifyDependencies checks readability verifies that a Linux shared
|
||||
* library has no dependency on symbols from glibc version higher than <code>expectedVersion</code>
|
||||
* library has no dependency on symbols from glibc version higher than 2.28
|
||||
* @run main VerifyDependencies
|
||||
* @requires (os.family == "linux")
|
||||
*/
|
||||
|
||||
public class VerifyDependencies {
|
||||
|
||||
static final public String EXPECTED_VERSION_LEGACY = "2.26";
|
||||
static final public String EXPECTED_VERSION_VULKAN = "2.28";
|
||||
|
||||
static String expectedVersion;
|
||||
|
||||
static final public String EXPECTED_VERSION = "2.28";
|
||||
public static void verifyLibrary(String libraryPath) throws IOException {
|
||||
Process process;
|
||||
BufferedReader reader;
|
||||
@@ -56,12 +52,12 @@ public class VerifyDependencies {
|
||||
System.out.println(line);
|
||||
if (line.contains("GLIBC_")) {
|
||||
String version = extractVersion(line);
|
||||
if (compareVersions(version, expectedVersion) > 0) {
|
||||
if (compareVersions(version, EXPECTED_VERSION) > 0) {
|
||||
throw new RuntimeException(libraryPath + " has a dependency on glibc version " + version);
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.println(libraryPath + " has no dependency on glibc version higher than " + expectedVersion);
|
||||
System.out.println(libraryPath + " has no dependency on glibc version higher than " + EXPECTED_VERSION);
|
||||
}
|
||||
|
||||
private static String extractVersion(String line) {
|
||||
@@ -129,12 +125,6 @@ public class VerifyDependencies {
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
String javaHome = System.getProperty("java.home");
|
||||
|
||||
String vendorVersion = System.getProperty("java.vendor.version");
|
||||
expectedVersion = vendorVersion.substring(Math.max(vendorVersion.length() - 3, 0)).compareTo("-lb") == 0
|
||||
? EXPECTED_VERSION_LEGACY : EXPECTED_VERSION_VULKAN;
|
||||
System.out.println("supporting glibc version is not less than " + expectedVersion);
|
||||
|
||||
findInDirectory(javaHome + "/bin", false);
|
||||
findInDirectory(javaHome + "/lib", true);
|
||||
}
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
/*
|
||||
* Copyright 2024-2025 JetBrains s.r.o.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
import jtreg.SkippedException;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.java2d.SurfaceData;
|
||||
import sun.java2d.vulkan.VKEnv;
|
||||
import sun.java2d.vulkan.VKGraphicsConfig;
|
||||
import sun.java2d.vulkan.VKRenderQueue;
|
||||
import sun.java2d.vulkan.VKSurfaceData;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.image.VolatileImage;
|
||||
import java.lang.foreign.MemorySegment;
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @requires os.family == "linux"
|
||||
* @library /test/lib
|
||||
* @summary Verifies that disposal of blit destination image doesn't crash the process.
|
||||
* @modules java.desktop/sun.java2d.vulkan:+open java.desktop/sun.java2d:+open java.desktop/sun.awt.image:+open
|
||||
* @run main/othervm -Djava.awt.headless=true -Dsun.java2d.vulkan=True -Dsun.java2d.vulkan.accelsd=true -Dsun.java2d.vulkan.leOptimizations=true VulkanDisposeBlitDstTest
|
||||
*/
|
||||
|
||||
|
||||
public class VulkanDisposeBlitDstTest {
|
||||
public static void main(String[] args) throws Exception {
|
||||
if (!VKEnv.isVulkanEnabled()) {
|
||||
throw new Error("Vulkan not enabled");
|
||||
}
|
||||
if (!VKEnv.isSurfaceDataAccelerated()) {
|
||||
throw new Error("Accelerated surface data not enabled");
|
||||
}
|
||||
|
||||
VKGraphicsConfig gc = VKEnv.getDevices().findFirst().get().getOffscreenGraphicsConfigs().findFirst().get();
|
||||
VolatileImage a = gc.createCompatibleVolatileImage(100, 100, VolatileImage.TRANSLUCENT, VKSurfaceData.RT_TEXTURE);
|
||||
VolatileImage b = gc.createCompatibleVolatileImage(100, 100, VolatileImage.TRANSLUCENT, VKSurfaceData.RT_TEXTURE);
|
||||
|
||||
// Blit a onto b
|
||||
Graphics2D g = (Graphics2D) b.getGraphics();
|
||||
g.drawImage(a, 0, 0, null);
|
||||
g.dispose();
|
||||
|
||||
// Dispose b
|
||||
WeakReference<SurfaceData> ref = new WeakReference<>(SurfaceManager.getManager(b).getPrimarySurfaceData());
|
||||
MemorySegment vksd = MemorySegment.ofAddress(ref.get().getNativeOps()).reinterpret(160); // sizeof(VKSDOps)
|
||||
b = null;
|
||||
final int MAX_ITERATIONS = 1000;
|
||||
for (int i = 0; i < MAX_ITERATIONS && ref.get() != null; i++) System.gc();
|
||||
if (ref.get() != null) throw new SkippedException("SurfaceData was not collected after " + MAX_ITERATIONS + " iterations");
|
||||
// Mess b's native data
|
||||
Thread.sleep(100);
|
||||
vksd.fill((byte) 0xec);
|
||||
|
||||
// Mutate a
|
||||
g = (Graphics2D) a.getGraphics();
|
||||
g.fillRect(10, 10, 10, 10);
|
||||
g.dispose();
|
||||
VKRenderQueue.getInstance().flushNow();
|
||||
}
|
||||
}
|
||||
@@ -1,79 +0,0 @@
|
||||
/*
|
||||
* Copyright 2024-2025 JetBrains s.r.o.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
import jtreg.SkippedException;
|
||||
import sun.awt.image.SurfaceManager;
|
||||
import sun.java2d.SurfaceData;
|
||||
import sun.java2d.vulkan.VKEnv;
|
||||
import sun.java2d.vulkan.VKGraphicsConfig;
|
||||
import sun.java2d.vulkan.VKRenderQueue;
|
||||
import sun.java2d.vulkan.VKSurfaceData;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.image.VolatileImage;
|
||||
import java.lang.foreign.MemorySegment;
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @requires os.family == "linux"
|
||||
* @library /test/lib
|
||||
* @summary Verifies that disposal of blit source image doesn't crash the process.
|
||||
* @modules java.desktop/sun.java2d.vulkan:+open java.desktop/sun.java2d:+open java.desktop/sun.awt.image:+open
|
||||
* @run main/othervm -Djava.awt.headless=true -Dsun.java2d.vulkan=True -Dsun.java2d.vulkan.accelsd=true -Dsun.java2d.vulkan.leOptimizations=true VulkanDisposeBlitSrcTest
|
||||
*/
|
||||
|
||||
|
||||
public class VulkanDisposeBlitSrcTest {
|
||||
public static void main(String[] args) throws Exception {
|
||||
if (!VKEnv.isVulkanEnabled()) {
|
||||
throw new Error("Vulkan not enabled");
|
||||
}
|
||||
if (!VKEnv.isSurfaceDataAccelerated()) {
|
||||
throw new Error("Accelerated surface data not enabled");
|
||||
}
|
||||
|
||||
VKGraphicsConfig gc = VKEnv.getDevices().findFirst().get().getOffscreenGraphicsConfigs().findFirst().get();
|
||||
VolatileImage a = gc.createCompatibleVolatileImage(100, 100, VolatileImage.TRANSLUCENT, VKSurfaceData.RT_TEXTURE);
|
||||
VolatileImage b = gc.createCompatibleVolatileImage(100, 100, VolatileImage.TRANSLUCENT, VKSurfaceData.RT_TEXTURE);
|
||||
|
||||
// Blit a onto b
|
||||
Graphics2D g = (Graphics2D) b.getGraphics();
|
||||
g.drawImage(a, 0, 0, null);
|
||||
g.dispose();
|
||||
|
||||
// Dispose a
|
||||
WeakReference<SurfaceData> ref = new WeakReference<>(SurfaceManager.getManager(a).getPrimarySurfaceData());
|
||||
MemorySegment vksd = MemorySegment.ofAddress(ref.get().getNativeOps()).reinterpret(160); // sizeof(VKSDOps)
|
||||
a = null;
|
||||
final int MAX_ITERATIONS = 1000;
|
||||
for (int i = 0; i < MAX_ITERATIONS && ref.get() != null; i++) System.gc();
|
||||
if (ref.get() != null) throw new SkippedException("SurfaceData was not collected after " + MAX_ITERATIONS + " iterations");
|
||||
// Mess a's native data
|
||||
Thread.sleep(100);
|
||||
vksd.fill((byte) 0xec);
|
||||
|
||||
// Flush b
|
||||
b.getSnapshot();
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
/*
|
||||
* Copyright 2025 JetBrains s.r.o.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.tree.DefaultMutableTreeNode;
|
||||
import javax.swing.tree.DefaultTreeModel;
|
||||
import javax.swing.tree.TreeCellRenderer;
|
||||
import javax.swing.tree.TreePath;
|
||||
import java.awt.*;
|
||||
import java.util.Objects;
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @summary regression test for JBR-9365 Unnecessary operations on tree node update
|
||||
*/
|
||||
|
||||
public class NodeUpdatePerformance {
|
||||
private static int countBefore;
|
||||
private static int countAfter;
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
SwingUtilities.invokeAndWait(() -> {
|
||||
DefaultMutableTreeNode root = new DefaultMutableTreeNode();
|
||||
DefaultMutableTreeNode child = new DefaultMutableTreeNode();
|
||||
root.add(child);
|
||||
DefaultTreeModel model = new DefaultTreeModel(root);
|
||||
JTree tree = new JTree(model);
|
||||
tree.setRowHeight(10);
|
||||
tree.setLargeModel(true);
|
||||
OurRenderer renderer = new OurRenderer();
|
||||
tree.setCellRenderer(renderer);
|
||||
|
||||
countBefore = renderer.invocationCount;
|
||||
model.valueForPathChanged(new TreePath(child.getPath()), "newValue");
|
||||
countAfter = renderer.invocationCount;
|
||||
});
|
||||
if (countBefore != countAfter) {
|
||||
throw new RuntimeException("Unexpected renderer access: countBefore=" + countBefore + ", countAfter=" + countAfter);
|
||||
}
|
||||
}
|
||||
|
||||
private static class OurRenderer extends JLabel implements TreeCellRenderer {
|
||||
private int invocationCount;
|
||||
|
||||
@Override
|
||||
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
|
||||
invocationCount++;
|
||||
setText(Objects.toString(value));
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
/*
|
||||
* Copyright 2025 JetBrains s.r.o.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @summary
|
||||
* @requires os.family == "linux"
|
||||
* @key headful
|
||||
* @library /test/lib
|
||||
* @run main/othervm -Dsun.awt.wl.WindowDecorationStyle=builtin CloseOnlyDialogShownTest
|
||||
*/
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.SwingUtilities;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Robot;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
public class CloseOnlyDialogShownTest {
|
||||
|
||||
public static void main(String[] args) throws Throwable {
|
||||
AtomicReference<Throwable> edtFailure = new AtomicReference<>();
|
||||
Thread.setDefaultUncaughtExceptionHandler((t, e) -> {
|
||||
if (SwingUtilities.isEventDispatchThread()) {
|
||||
edtFailure.compareAndSet(null, e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
|
||||
AtomicReference<JDialog> holder = new AtomicReference<>();
|
||||
SwingUtilities.invokeAndWait(() -> {
|
||||
JDialog dialog = new JDialog((java.awt.Frame) null, "Close-only window", false);
|
||||
holder.set(dialog);
|
||||
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
|
||||
dialog.add(new JLabel("This dialog should show with only a close button."));
|
||||
dialog.setMinimumSize(new Dimension(200, 120));
|
||||
dialog.setVisible(true);
|
||||
});
|
||||
|
||||
Robot robot = new Robot();
|
||||
robot.waitForIdle();
|
||||
robot.delay(500);
|
||||
|
||||
SwingUtilities.invokeAndWait(() -> {
|
||||
JDialog dialog = holder.get();
|
||||
if (dialog != null) {
|
||||
dialog.dispose();
|
||||
}
|
||||
});
|
||||
|
||||
if (edtFailure.get() != null) {
|
||||
throw edtFailure.get();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -47,7 +47,6 @@ javax/swing/JComboBox/8041909/ActionListenerExceptionTest.java JBR-5210 windows-
|
||||
javax/swing/JComboBox/bug4996503.java JBR-7412 windows-x64
|
||||
javax/swing/JComboBox/EditableComboBoxPopupPos.java JBR-7383 windows-x64
|
||||
javax/swing/JComponent/7154030/bug7154030.java JBR-8384 windows-x64
|
||||
javax/swing/JFileChooser/4150029/bug4150029.java JBR-9419 windows-x64
|
||||
javax/swing/JFileChooser/4847375/bug4847375.java JBR-8855 windows-x64
|
||||
javax/swing/JFileChooser/4966171/bug4966171.java JBR-8855 windows-x64
|
||||
javax/swing/JFileChooser/DeserializedJFileChooser/DeserializedJFileChooserTest.java JBR-8855 windows-x64
|
||||
@@ -72,7 +71,6 @@ jb/java/awt/Desktop/AboutHandlerTest.java nobug macosx-all,linux-all,w
|
||||
jb/java/awt/Focus/ChainOfPopupsFocusTest.java JBR-8407 windows-x64
|
||||
jb/java/awt/Focus/FrameAfterPopup.java JBR-9161 windows-x64
|
||||
jb/java/awt/Focus/MaximizedCustomDecorationsTest.java JBR-9346 windows-x64
|
||||
jb/java/awt/Focus/ModalDialogFromMenuTest.java JBR-9426 windows-x64
|
||||
jb/java/awt/Focus/NewFrameAfterDialogTest.java JBR-7387 windows-x64
|
||||
|
||||
# VoiceOver on MacOS
|
||||
@@ -103,7 +101,6 @@ java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java JBR-5397 macosx-al
|
||||
|
||||
javax/swing/JFileChooser/4400728/JFileChooserDefaultDirectoryTest.java JBR-8855 windows-all
|
||||
javax/swing/JFileChooser/4524490/bug4524490.java JBR-5397,JBR-5846 macosx-all,windows-all
|
||||
javax/swing/JFileChooser/4525475/JFileChooserReadOnlyTest.java JBR-8855 windows-x64
|
||||
javax/swing/JFileChooser/6520101/bug6520101.java JBR-5397,JBR-7413 macosx-all,windows-x64
|
||||
javax/swing/JFileChooser/8002077/bug8002077.java JBR-4880,JBR-5397 windows-all,macosx-all
|
||||
javax/swing/JFileChooser/8010718/bug8010718.java JBR-8855 windows-all
|
||||
@@ -179,6 +176,7 @@ java/awt/Component/NativeInLightShow/NativeInLightShow.java JBR-7715 windows-x64
|
||||
java/awt/Component/RepaintTest.java JBR-7754 windows-x64
|
||||
java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.java JBR-5538 windows-x64
|
||||
java/awt/dnd/Button2DragTest/Button2DragTest.java 8310490,JBR-5505 windows-all,linux-all
|
||||
java/awt/dnd/DropActionChangedTest.java JBR-6757 windows-x64
|
||||
java/awt/dnd/RecognizedActionTest/RecognizedActionTest.java JBR-8037 windows-x64
|
||||
java/awt/event/ComponentEvent/TextComponentTextEventTest.java JBR-7141 windows-all
|
||||
java/awt/event/KeyEvent/KeyEventLocationTest.java JBR-5916,JBR-5397,JBR-7141 linux-all,macosx-all,windows-all
|
||||
|
||||
@@ -23,7 +23,7 @@ javax/swing/JFileChooser/8021253/bug8021253.java JBR-6510 macosx-all
|
||||
javax/swing/JList/4618767/JListSelectedElementTest.java JBR-6510 macosx-all
|
||||
javax/swing/JSplitPane/4164779/JSplitPaneKeyboardNavigationTest.java JBR-6510 macosx-all
|
||||
javax/swing/JSplitPane/4820080/JSplitPaneDragColorTest.java JBR-7247 macosx-all
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java JBR-8217 macosx-15.6,macosx-15.6.1,macosx-15.7
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java JBR-8217 macosx-15.6,macosx-15.6.1
|
||||
javax/swing/SwingGraphics/TranslateTest.java JBR-7510 macosx-aarch64
|
||||
|
||||
jb/java/awt/CustomTitleBar/FrameNativeControlsTest.java JBR-6998 macosx-all
|
||||
@@ -120,6 +120,7 @@ java/awt/Focus/6981400/Test1.java 8029675,JBR-6702 windows-all,macosx-all,linux-
|
||||
java/awt/Focus/8013611/JDK8013611.java JBR-7338,JBR-7506 linux-all,windows-all
|
||||
java/awt/Focus/8073453/SwingFocusTransitionTest.java JBR-7339 linux-all,windows-all
|
||||
java/awt/Focus/8282640/ScrollPaneFocusBugTest.java JBR-7340 linux-all
|
||||
java/awt/Focus/ActivateFocusTest.java JBR-7888 linux-all
|
||||
java/awt/Focus/ChoiceFocus/ChoiceFocus.java JBR-7341 linux-all
|
||||
java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java JBR-8233 linux-x64
|
||||
java/awt/Graphics2D/TextPerf.java JBR-8541 linux-all,windows-all
|
||||
@@ -127,6 +128,7 @@ java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogT
|
||||
java/awt/List/PageUPSelectsItemsTest.java JBR-8281 linux-all
|
||||
java/awt/MenuBar/SeparatorsNavigation/SeparatorsNavigation.java JBR-4880,JBR-8090 windows-all,linux-all
|
||||
java/awt/MenuItem/EnableTest.java NOBUG windows-all timeout
|
||||
java/awt/Modal/MultipleDialogs/MixOfModalAndNonModalDialogs.java JBR-9317 linux-6.15.8-100.fc41.x86_64
|
||||
java/awt/Mouse/EnterExitEvents/DragWindowTest.java 8253184,JBR-5710 windows-all,linux-all
|
||||
java/awt/Robot/NonEmptyErrorStream.java JBR-6275 macosx-all
|
||||
java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java JBR-7779 linux-all
|
||||
@@ -134,7 +136,6 @@ java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java JBR-7779 linux-all
|
||||
javax/swing/event/FocusEventCauseTest.java JBR-8811 windows-all
|
||||
javax/swing/GraphicsConfigNotifier/StalePreferredSize.java JBR-9273 linux-6.15.8-100.fc41.x86_64
|
||||
javax/swing/JEditorPane/TestBrowserBGColor.java JBR-6697 linux-aarch64
|
||||
javax/swing/JTable/7055065/bug7055065.java JBR-9413 windows-x64
|
||||
javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java JBR-6485 linux-all
|
||||
javax/swing/plaf/nimbus/8041642/bug8041642.java JBR-6698 linux-all
|
||||
javax/swing/UI/UnninstallUIMemoryLeaks/UnninstallUIMemoryLeaks.java JBR-5952,JBR-6274 windows-all,macosx-all
|
||||
|
||||
@@ -27,7 +27,7 @@ java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedT
|
||||
java/awt/MenuShortcut/ActionCommandTest.java JBR-8822 windows-x64
|
||||
java/awt/Robot/Delay/InterruptOfDelay.java 8265986,JBR-8148 macosx-all,linux-x64
|
||||
java/awt/Robot/MouseLocationOnScreen/MouseLocationOnScreen.java JBR-5390,JBR-9209 macosx-all,linux-all,linux-6.15.8-100.fc41.x86_64
|
||||
java/awt/Robot/NonEmptyErrorStream.java JBR-5442 macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
|
||||
java/awt/Robot/NonEmptyErrorStream.java JBR-5442 macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
|
||||
java/awt/Robot/RobotMoveMultiscreen.java JBR-5442 linux-all
|
||||
java/awt/Robot/SpuriousMouseEvents/SpuriousMouseEvents.java JBR-6572 linux-all
|
||||
java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java JBR-7822 linux-x64
|
||||
@@ -37,8 +37,8 @@ java/awt/Window/WindowSizeDifferentScreens/WindowSizeDifferentScreens.java JBR-5
|
||||
|
||||
javax/swing/event/FocusEventCauseTest.java JBR-8811 windows-all
|
||||
javax/swing/JButton/bug4234034.java JBR-8997 windows-all
|
||||
javax/swing/JTextField/4532513/DefaultCaretRequestsFocusTest.java JBR-8330 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
|
||||
javax/swing/JTextArea/4514331/TabShiftsFocusToNextComponent.java JBR-8329 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
|
||||
javax/swing/JTextField/4532513/DefaultCaretRequestsFocusTest.java JBR-8330 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
|
||||
javax/swing/JTextArea/4514331/TabShiftsFocusToNextComponent.java JBR-8329 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
|
||||
javax/swing/JTextArea/8149849/DNDTextToScaledArea.java JBR-5442 linux-all
|
||||
javax/swing/SwingWorker/TestDoneBeforeDoInBackground.java JBR-5442 linux-all
|
||||
javax/swing/system/6799345/TestShutdown.java JBR-6020 windows-all
|
||||
@@ -112,7 +112,6 @@ javax/swing/GraphicsConfigNotifier/TestMultiScreenGConfigNotify.java nobug linux
|
||||
javax/swing/JButton/8151303/PressedIconTest.java JBR-5210 windows-all,linux-all
|
||||
javax/swing/JComboBox/6559152/bug6559152.java JBR-7783,JBR-8964 linux-x64,windows-all
|
||||
javax/swing/JDialog/Transparency/TransparencyTest.java 8253184 windows-all,linux-all
|
||||
javax/swing/JFileChooser/4400728/JFileChooserDefaultDirectoryTest.java JBR-8534 windows-x64
|
||||
javax/swing/JFileChooser/4847375/bug4847375.java JBR-8534 windows-x64
|
||||
javax/swing/JFileChooser/4966171/bug4966171.java JBR-8534 windows-x64
|
||||
javax/swing/JFileChooser/8010718/bug8010718.java JBR-8534 windows-x64
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
java/awt/AlphaComposite/WindowAlphaCompositeTest.java JBR-6553 macosx-all
|
||||
java/awt/Button/DisabledButtonPress.java JBR-5799 windows-aarch64
|
||||
java/awt/Desktop/8064934/bug8064934.java JBR-5764,JBR-5799 windows-all
|
||||
java/awt/Debug/DumpOnKey/DumpOnKey.java JBR-5225 windows-all
|
||||
java/awt/Debug/DumpOnKey/DumpOnKey.java JBR-5225,JBR-9350 windows-all,macosx-all
|
||||
java/awt/event/HierarchyEvent/SpecTest.java JBR-7589 windows-all
|
||||
java/awt/event/KeyEvent/CorrectTime/CorrectTime.java JBR-6665 linux-all,windows-all
|
||||
java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java 8224055,JBR-5906 macosx-all,linux-all
|
||||
@@ -164,12 +164,12 @@ java/awt/Frame/HideMaximized/HideMaximized.java JBR-8310 linux-all
|
||||
java/awt/Frame/Iconify/IconifyTest.java JBR-8836 linux-all
|
||||
java/awt/Frame/InitialIconifiedTest.java 7144049,8203920 macosx-all,linux-all
|
||||
java/awt/Frame/MaximizeUndecoratedTest.java JBR-8064 linux-all
|
||||
java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java JBR-7509,JBR-8889 macosx-15.4.1,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7,macosx-all
|
||||
java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java JBR-7786,JBR-7947 linux-all,macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7,macosx-26.0
|
||||
java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java JBR-7509,JBR-8889 macosx-15.4.1,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-all
|
||||
java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java JBR-7786,JBR-7947 linux-all,macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-26.0
|
||||
java/awt/Frame/MaximizedToOppositeScreen/MaximizedToOppositeScreenBig.java JBR-5303 windows-all
|
||||
java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java 8022302 generic-all
|
||||
java/awt/Frame/MinimizeUndecoratedTest.java 8330731 linux-all
|
||||
java/awt/Frame/MinimumSizeTest.java JBR-8298 linux-all
|
||||
java/awt/Frame/MinimumSizeTest.java JBR-8298 linux-6.8.0-1031-aws,linux-6.8.0-1032-aws,linux-6.8.0-1033-aws,linux-6.8.0-1035-aws,linux-6.8.0-1036-aws
|
||||
java/awt/Frame/RestoreToOppositeScreen/RestoreToOppositeScreen.java 8286840 linux-all
|
||||
java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java JBR-4880,JBR-6683 windows-all,linux-all
|
||||
java/awt/dnd/CustomDragCursorTest.java 8242805 macosx-all
|
||||
@@ -221,7 +221,7 @@ java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java 7080150,JBR-4880,825318
|
||||
java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java 8169109,JBR-4880 linux-all,windows-all
|
||||
java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java 8168646 generic-all
|
||||
java/awt/MenuBar/8007006/bug8007006.java JBR-9213 macosx-26.0
|
||||
java/awt/MenuShortcut/FunctionKeyShortcut.java JBR-9207 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/awt/MenuShortcut/FunctionKeyShortcut.java JBR-9207 linux-6.15.8-100.fc41.x86_64
|
||||
java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java 8049405,8253184 generic-all
|
||||
java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java 8049405,8253184 generic-all
|
||||
java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java 8294264 windows-x64
|
||||
@@ -266,7 +266,7 @@ java/awt/Mixing/MixingInHwPanel.java 8253184 windows-all
|
||||
java/awt/Mixing/NonOpaqueInternalFrame.java 7124549 macosx-all
|
||||
java/awt/Mixing/ValidBounds.java 8253184,JBR-5845 windows-all,linux-all
|
||||
java/awt/Mixing/Validating.java JBR-5908 linux-all
|
||||
java/awt/Focus/ActivateFocusTest.java JBR-7888 linux-all
|
||||
java/awt/Focus/ActivateFocusTest.java JBR-7888 linux-6.15.8-100.fc41.x86_64
|
||||
java/awt/Focus/ActivateOnProperAppContextTest.java 8136516 macosx-all
|
||||
java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java 8252772,JBR-5799 linux-all,windows-all
|
||||
java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java 6829264 generic-all
|
||||
@@ -351,7 +351,7 @@ java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java 80
|
||||
java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java 8253184 windows-all
|
||||
java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java 8253184 windows-all
|
||||
java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java 8253184 windows-all
|
||||
java/awt/Window/MultiWindowApp/ChildAlwaysOnTopTest.java JBR-7312,JBR-9192 macosx-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/awt/Window/MultiWindowApp/ChildAlwaysOnTopTest.java JBR-7312,JBR-9192 macosx-all,linux-6.15.8-100.fc41.x86_64
|
||||
java/awt/Window/MultiWindowApp/MultiWindowAppTest.java 8253184,JBR-6463 windows-all,linux-all
|
||||
java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java 8222328 windows-all,linux-all,macosx-all
|
||||
java/awt/Window/ShapedAndTranslucentWindows/Shaped.java 8222328 windows-all,linux-all,macosx-all
|
||||
@@ -378,7 +378,7 @@ java/awt/image/multiresolution/MultiresolutionIconTest.java 8252812 windows-all,
|
||||
java/awt/image/multiresolution/MultiResolutionJOptionPaneIconTest.java 8253184 windows-all
|
||||
java/awt/print/Headless/HeadlessPrinterJob.java 8196088 windows-all
|
||||
sun/awt/datatransfer/SuplementaryCharactersTransferTest.java 8011371 generic-all
|
||||
sun/awt/font/TestArabicHebrew.java JBR-8826,JBR-9210 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
sun/awt/font/TestArabicHebrew.java JBR-8826,JBR-9210 linux-6.15.8-100.fc41.x86_64
|
||||
sun/awt/font/TestDevTransform.java 8347618,JBR-9122 linux-all,windows-all
|
||||
sun/awt/shell/ShellFolderMemoryLeak.java 8197794 windows-all
|
||||
sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java 8301177 generic-all
|
||||
@@ -391,8 +391,7 @@ sun/java2d/SunGraphics2D/DrawImageBilinear.java 8297175 linux-all
|
||||
|
||||
java/awt/Graphics/NativeWin32Clear.java JBR-8689 linux-aarch64
|
||||
java/awt/Graphics/XORPaint.java#id1 JBR-8642 macosx-aarch64
|
||||
java/awt/Graphics/XORPaint.java#id2 JBR-9348 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
|
||||
java/awt/Graphics2D/CopyAreaOOB.java JBR-5354,JBR-9206 macosx-all,windows-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/awt/Graphics2D/CopyAreaOOB.java JBR-5354,JBR-9206 macosx-all,windows-all,linux-6.15.8-100.fc41.x86_64
|
||||
java/awt/Graphics2D/DrawString/DisposerTest.java JBR-5010 linux-aarch64
|
||||
java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java 8266283 generic-all
|
||||
sun/java2d/SunGraphics2D/PolyVertTest.java 6986565 generic-all
|
||||
@@ -576,7 +575,6 @@ java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java 825318
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java 8196432,8253184 linux-all,windows-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java 8253184 windows-all
|
||||
java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java 8253184,JBR-6302 windows-all,linux-all
|
||||
java/awt/Modal/MultipleDialogs/MixOfModalAndNonModalDialogs.java JBR-9317 linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java 8198665,8253184 macosx-all,windows-all
|
||||
java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java 8198665,8253184 macosx-all,windows-all
|
||||
java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java 8198665,8253184,JBR-8318 macosx-all,windows-all,linux-all
|
||||
@@ -585,7 +583,7 @@ java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java 8198665,8253184 macosx-
|
||||
java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java 8177326,8253184,JBR-6305 macosx-all,windows-all,linux-all
|
||||
java/awt/Mouse/EnterExitEvents/DragWindowTest.java 8253184,8298823 windows-all,macosx-all
|
||||
java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java 8253184,JBR-5811 windows-all,linux-all
|
||||
java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java 8005021,8253184,JBR-9208 macosx-all,windows-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java 8005021,8253184,JBR-9208 macosx-all,windows-all,linux-6.15.8-100.fc41.x86_64
|
||||
java/awt/Mouse/EnterExitEvents/FullscreenEnterEventTest.java 8051455 macosx-all
|
||||
java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.java 8253184,JBR-5709 windows-all,linux-all
|
||||
java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java 8253184,JBR-6752 windows-all,linux-all
|
||||
@@ -721,9 +719,9 @@ java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersInKeyEvent.java 8157147 linu
|
||||
java/awt/Mouse/MouseWheelAbsXY/MouseWheelAbsXY.java 8253184,JBR-7076 windows-all,linux-all
|
||||
java/awt/xembed/server/RunTestXEmbed.java 7034201 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java 8164473 linux-all
|
||||
java/awt/Frame/DecoratedFrameInsets/DecoratedFrameInsetsTest.java JBR-5205,JBR-9204 linux-5.4.0-1103-aws,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/awt/Frame/DecoratedFrameInsets/DecoratedFrameInsetsTest.java JBR-5205,JBR-9204 linux-5.4.0-1103-aws,linux-6.15.8-100.fc41.x86_64
|
||||
java/awt/Frame/DisposeParentGC/DisposeParentGC.java 8079786 macosx-all
|
||||
java/awt/Frame/DynamicLayout/DynamicLayout.java JBR-9205 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/awt/Frame/DynamicLayout/DynamicLayout.java JBR-9205 linux-6.15.8-100.fc41.x86_64
|
||||
|
||||
java/awt/GraphicsDevice/DisplayModes/CycleDMImage.java 7099223,8274106 macosx-all,linux-all,windows-all
|
||||
java/awt/GraphicsDevice/DisplayModes/ExtraAllocationTest.java JBR-6384 macosx-all
|
||||
@@ -747,7 +745,7 @@ java/awt/Paint/bug8024864.java JBR-6544 generic-all
|
||||
java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java 8253184,JBR-6844 windows-all,linux-all
|
||||
java/awt/Paint/ListRepaint.java JBR-5060 linux-all
|
||||
java/awt/Paint/PaintNativeOnUpdate.java 8253184 windows-all
|
||||
java/awt/PopupMenu/PopupMenuLocation.java 8238720,JBR-7035,JBR-9251 windows-all,macosx-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/awt/PopupMenu/PopupMenuLocation.java 8238720,JBR-7035,JBR-9251 windows-all,macosx-all,linux-6.15.8-100.fc41.x86_64
|
||||
java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.java 8253184 windows-all
|
||||
java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java 8238720,8324782 windows-all,macosx-all
|
||||
java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java 8238720,8324782 windows-all,macosx-all
|
||||
@@ -766,7 +764,7 @@ java/awt/MenuBar/TestNoScreenMenuBar.java 8265987 macosx-all
|
||||
|
||||
java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java JBR-5210 windows-all
|
||||
java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java 8266243,JBR-6632 macosx-all,linux-all
|
||||
java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java JBR-5225 windows-all
|
||||
java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java JBR-5225,JBR-9350 windows-all,macosx-all
|
||||
java/awt/Dialog/SiblingChildOrder/SiblingChildOrderTest.java JBR-5082 linux-all
|
||||
java/awt/Window/GetScreenLocation/GetScreenLocationTest.java 8225787,8253184 linux-all,windows-all
|
||||
java/awt/dnd/DragSourceMotionListenerTest.java 8225131 windows-all
|
||||
@@ -876,16 +874,16 @@ javax/net/ssl/SSLSocket/Tls13PacketSize.java 8354235 windows-all
|
||||
|
||||
java/nio/channels/AsynchronousSocketChannel/StressLoopback.java JBR-8817 windows-aarch64
|
||||
|
||||
java/nio/channels/DatagramChannel/AdaptorMulticasting.java 8144003,JBR-8455,JBR-8456,8308807,JBR-9219 macosx-all,aix-ppc64,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/nio/channels/DatagramChannel/AdaptorMulticasting.java 8144003,JBR-8455,JBR-8456,8308807,JBR-9219 macosx-all,aix-ppc64,linux-6.15.8-100.fc41.x86_64
|
||||
java/nio/channels/DatagramChannel/BasicMulticastTests.java 8144003 macosx-all
|
||||
java/nio/channels/DatagramChannel/Loopback.java JBR-9219 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/nio/channels/DatagramChannel/Loopback.java JBR-9219 linux-6.15.8-100.fc41.x86_64
|
||||
java/nio/channels/DatagramChannel/ManySourcesAndTargets.java 8264385 macosx-aarch64
|
||||
java/nio/channels/DatagramChannel/MulticastSendReceiveTests.java 8144003,JBR-9218 macosx-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/nio/channels/DatagramChannel/Promiscuous.java 8144003,JBR-9218 macosx-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/nio/channels/DatagramChannel/PromiscuousIPv6.java JBR-8828,JBR-9218 macosx-x64,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/nio/channels/DatagramChannel/MulticastSendReceiveTests.java 8144003,JBR-9218 macosx-all,linux-6.15.8-100.fc41.x86_64
|
||||
java/nio/channels/DatagramChannel/Promiscuous.java 8144003,JBR-9218 macosx-all,linux-6.15.8-100.fc41.x86_64
|
||||
java/nio/channels/DatagramChannel/PromiscuousIPv6.java JBR-8828,JBR-9218 macosx-x64,linux-6.15.8-100.fc41.x86_64
|
||||
java/nio/channels/DatagramChannel/Unref.java 8233437 generic-all
|
||||
|
||||
java/nio/channels/FileChannel/LargeGatheringWrite.java JBR-9316 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/nio/channels/FileChannel/LargeGatheringWrite.java JBR-9316 linux-6.15.8-100.fc41.x86_64
|
||||
|
||||
java/nio/channels/Selector/Wakeup.java 6963118 windows-all
|
||||
|
||||
@@ -1021,7 +1019,7 @@ javax/swing/plaf/windows/WindowsRootPaneUI/WrongAltProcessing/WrongAltProcessing
|
||||
javax/swing/Box/TestBoxFiller.java JBR-5210 windows-all
|
||||
javax/swing/DataTransfer/bug4655513.java JBR-8849 windows-all
|
||||
javax/swing/DefaultButtonModel/DefaultButtonModelCrashTest.java JBR-5210,JBR-5799 windows-all
|
||||
javax/swing/GraphicsConfigNotifier/StalePreferredSize.java JBR-5210 windows-all
|
||||
javax/swing/GraphicsConfigNotifier/StalePreferredSize.java JBR-5210,JBR-9211 windows-all,macosx-26.0
|
||||
javax/swing/JButton/4368790/bug4368790.java JBR-5210 windows-all
|
||||
javax/swing/JButton/4659800/SpaceKeyActivatesButton.java JBR-4949 linux-all,windows-all
|
||||
javax/swing/JButton/8151303/PressedIconTest.java JBR-5210 windows-all
|
||||
@@ -1045,7 +1043,7 @@ javax/swing/JComboBox/TestComboBoxComponentRendering.java JBR-8270 linux-all
|
||||
javax/swing/JComponent/6683775/bug6683775.java 8172337 generic-all
|
||||
javax/swing/JDialog/Transparency/TransparencyTest.java 8253184 windows-all
|
||||
javax/swing/JLabel/4138746/JLabelMnemonicsTest.java JBR-4949 linux-all,windows-all
|
||||
javax/swing/JLabel/6596966/bug6596966.java 8197552,JBR-9195 windows-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
javax/swing/JLabel/6596966/bug6596966.java 8197552,JBR-9195 windows-all,linux-6.15.8-100.fc41.x86_64
|
||||
javax/swing/JLabel/7004134/bug7004134.java JBR-5437 linux-all
|
||||
javax/swing/JLabel/bug4822331.java JBR-7422 windows-10.0
|
||||
javax/swing/JList/4618767/JListSelectedElementTest.java JBR-4955 windows-all
|
||||
@@ -1066,11 +1064,11 @@ javax/swing/JMenuItem/8158566/CloseOnMouseClickPropertyTest.java JBR-5545,JBR-65
|
||||
javax/swing/JMenuItem/bug4839464.java JBR-5911 windows-all
|
||||
javax/swing/JMenuItem/6249972/bug6249972.java 8197552 windows-all
|
||||
javax/swing/JOptionPane/7138665/bug7138665.java JBR-5799 windows-all
|
||||
javax/swing/JOptionPane/8081019/bug8081019.java JBR-5767 windows-all
|
||||
javax/swing/JOptionPane/8081019/bug8081019.java JBR-5767,JBR-9350 windows-all,macosx-all
|
||||
javax/swing/JPasswordField/TestSelectedTextBackgroundColor.java JBR-8665 linux-6.8.0-1017-raspi
|
||||
javax/swing/JProgressBar/8015748/JProgressBarOrientationRobotTest.java JBR-8571 linux-all
|
||||
javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java JBR-8926 macosx-x64
|
||||
javax/swing/JProgressBar/TestJProgressBarHighlightColor.java JBR-9199 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
javax/swing/JProgressBar/TestJProgressBarHighlightColor.java JBR-9199 linux-6.15.8-100.fc41.x86_64
|
||||
javax/swing/JPopupMenu/4634626/bug4634626.java 8253184 windows-all
|
||||
javax/swing/JPopupMenu/4760494/bug4760494.java 8253184 windows-all
|
||||
javax/swing/JPopupMenu/4870644/bug4870644.java 8194130 macosx-all,linux-all
|
||||
@@ -1098,10 +1096,10 @@ javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java 8
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java 8194128,8253184,JBR-6515 macosx-all,windows-all,linux-all
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java 8013450,8253184 macosx-all,windows-all
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java 8024627,8253184 macosx-all,windows-all
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java JBR-8327 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java JBR-8327 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java 8253184 windows-all
|
||||
javax/swing/LookAndFeel/8145547/DemandGTK2.sh JBR-9202 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
|
||||
javax/swing/LookAndFeel/8145547/DemandGTK3.sh JBR-9202 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
|
||||
javax/swing/LookAndFeel/8145547/DemandGTK2.sh JBR-9202 linux-6.15.8-100.fc41.x86_64
|
||||
javax/swing/LookAndFeel/8145547/DemandGTK3.sh JBR-9202 linux-6.15.8-100.fc41.x86_64
|
||||
|
||||
# The next test below is an intermittent failure
|
||||
javax/swing/JTree/DnD/LastNodeLowerHalfDrop.java 8159131 linux-all
|
||||
@@ -1140,12 +1138,12 @@ javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelO
|
||||
javax/swing/JTabbedPane/4361477/bug4361477.java JBR-5932 linux-all
|
||||
javax/swing/JTabbedPane/8007563/Test8007563.java 8051591 generic-all
|
||||
javax/swing/JTabbedPane/4624207/bug4624207.java 8064922,8197552,JBR-6235 macosx-all,windows-all,linux-all 8064922:macosx-all, 8197552:windows-all
|
||||
javax/swing/JTabbedPane/TestBackgroundScrollPolicy.java 8253184,JBR-8498 windows-all,macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
|
||||
javax/swing/JTabbedPane/TestJTabbedPaneBackgroundColor.java JBR-8493 macosx-15.4.1,macosx-15.6,macosx-15.6.1,macosx-15.7
|
||||
javax/swing/JTabbedPane/TestBackgroundScrollPolicy.java 8253184,JBR-8498 windows-all,macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
|
||||
javax/swing/JTabbedPane/TestJTabbedPaneBackgroundColor.java JBR-8493 macosx-15.4.1,macosx-15.6,macosx-15.6.1
|
||||
javax/swing/JToggleButton/TestSelectedKey.java JBR-5846 windows-all
|
||||
javax/swing/JToolBar/4529206/bug4529206.java JBR-5387 linux-all
|
||||
javax/swing/JToolTip/6219960/bug6219960.java 8253184 windows-all
|
||||
javax/swing/JToolTip/TestTooltipBackgroundColor.java JBR-9201 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
javax/swing/JToolTip/TestTooltipBackgroundColor.java JBR-9201 linux-6.15.8-100.fc41.x86_64
|
||||
javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java 8160720 generic-all
|
||||
javax/swing/system/6799345/TestShutdown.java JBR-6881 windows-all,macosx-all
|
||||
javax/swing/text/AbstractDocument/8190763/TestCCEOnEditEvent.java JBR-5799 windows-all
|
||||
@@ -1162,8 +1160,8 @@ javax/swing/JInternalFrame/6288609/TestJInternalFrameDispose.java JBR-788 window
|
||||
javax/swing/JInternalFrame/6647340/bug6647340.java 8253184 windows-all
|
||||
javax/swing/JInternalFrame/8145060/TestJInternalFrameMinimize.java JBR-788 windows-all,linux-all
|
||||
javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java JBR-5539 windows-all
|
||||
javax/swing/JInternalFrame/JInternalFrameTest.java JBR-9193 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
javax/swing/JInternalFrame/Test6325652.java JBR-6111,JBR-9194 windows-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
javax/swing/JInternalFrame/JInternalFrameTest.java JBR-9193 linux-6.15.8-100.fc41.x86_64
|
||||
javax/swing/JInternalFrame/Test6325652.java JBR-6111,JBR-9194 windows-all,linux-6.15.8-100.fc41.x86_64
|
||||
javax/swing/JInternalFrame/Test6505027.java JBR-5954 linux-all,macosx-all
|
||||
javax/swing/JInternalFrame/Test6802868.java 8253184 windows-all
|
||||
javax/swing/ProgressMonitor/ProgressMonitorEscapeKeyPress.java JBR-5210 windows-all
|
||||
@@ -1202,7 +1200,7 @@ java/awt/Robot/HiDPIScreenCapture/HiDPIRobotScreenCaptureTest.java 8253184,JBR-1
|
||||
java/awt/Robot/HiDPIScreenCapture/ScreenCaptureTest.java 8253184 windows-all
|
||||
java/awt/Robot/CheckCommonColors/CheckCommonColors.java 8253184 windows-all
|
||||
java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java JBR-5802 windows-all
|
||||
java/awt/Robot/MouseLocationOnScreen/MouseLocationOnScreen.java JBR-9209 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/awt/Robot/MouseLocationOnScreen/MouseLocationOnScreen.java JBR-9209 linux-6.15.8-100.fc41.x86_64
|
||||
java/awt/Robot/MultiScreenRobotPosition/MultiScreenRobotPosition.java JBR-830 windows-all
|
||||
javax/swing/SwingGraphics/TranslateTest.java JBR-7470 linux-all
|
||||
|
||||
@@ -1315,9 +1313,9 @@ jdk/jfr/startupargs/TestStartDuration.java 8214685 windows-
|
||||
jdk/jfr/jvm/TestDumpOnCrash.java JBR-8780 windows-aarch64
|
||||
jdk/jfr/jvm/TestWaste.java 8282427 generic-all
|
||||
jdk/jfr/api/consumer/recordingstream/TestOnEvent.java 8255404 linux-x64
|
||||
jdk/jfr/api/consumer/streaming/TestOutOfProcessMigration.java JBR-8460 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
|
||||
jdk/jfr/api/consumer/streaming/TestJVMCrash.java JBR-8459 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
|
||||
jdk/jfr/api/consumer/streaming/TestJVMExit.java JBR-8460 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
|
||||
jdk/jfr/api/consumer/streaming/TestOutOfProcessMigration.java JBR-8460 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
|
||||
jdk/jfr/api/consumer/streaming/TestJVMCrash.java JBR-8459 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
|
||||
jdk/jfr/api/consumer/streaming/TestJVMExit.java JBR-8460 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
|
||||
|
||||
############################################################################
|
||||
|
||||
@@ -1357,7 +1355,7 @@ javax/swing/JFileChooser/6698013/bug6698013.java 8024419 macosx-all
|
||||
javax/swing/JColorChooser/8065098/bug8065098.java 8065647 macosx-all
|
||||
java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java 8068378 generic-all
|
||||
javax/swing/JTabbedPane/4666224/bug4666224.html 8144124 macosx-all
|
||||
javax/swing/JTextArea/4697612/bug4697612.java JBR-9200 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
javax/swing/JTextArea/4697612/bug4697612.java JBR-9200 linux-6.15.8-100.fc41.x86_64
|
||||
javax/swing/JTextArea/8149849/DNDTextToScaledArea.java 8253184 windows-all
|
||||
javax/swing/JTextArea/7049024/bug7049024.java JBR-5836 linux-all
|
||||
java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java JBR-6353 linux-all,windows-aarch64,macosx-all
|
||||
@@ -1431,7 +1429,7 @@ jb/java/awt/CustomTitleBar/FrameNativeControlsTest.java JBR-9196 macosx-26.0
|
||||
jb/java/awt/CustomTitleBar/JDialogNativeControlsTest.java JBR-9196 macosx-26.0
|
||||
jb/java/awt/CustomTitleBar/MinimizingWindowTest.java JBR-9196 macosx-26.0
|
||||
|
||||
jb/java/awt/Graphics2D/TextRender/OGLMetalTextRender.java JBR-4091,JBR-5392 windows-aarch64,macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
|
||||
jb/java/awt/Graphics2D/TextRender/OGLMetalTextRender.java JBR-4091,JBR-5392 windows-aarch64,macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
|
||||
jb/java/awt/event/MouseEvent/MouseMoveEventFallThroughTest.java JBR-8789 windows-all
|
||||
jb/java/awt/event/TouchScreenEvent/TouchScreenEventsTestLinux.sh JBR-4078 linux-all
|
||||
jb/java/awt/Font/font430.sh JBR-4956 linux-all
|
||||
|
||||
@@ -10,7 +10,7 @@ java/awt/dnd/DragSourceGCrashTest.java JBR-6442 linux-all
|
||||
java/awt/dnd/DropActionChangeTest.java JBR-6489,JBR-5799 generic-all
|
||||
java/awt/dnd/DroppingVMHangTest.java JBR-9156 linux-all
|
||||
java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.java JBR-6442 linux-all
|
||||
java/awt/dnd/InterJVMLinkTest.java JBR-9255 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/awt/dnd/InterJVMLinkTest.java JBR-9255 linux-6.15.8-100.fc41.x86_64
|
||||
java/awt/dnd/MozillaDnDTest.java JBR-6442 linux-all
|
||||
java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java JBR-6292 windows-all
|
||||
java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java JBR-6292 windows-all
|
||||
@@ -20,6 +20,7 @@ java/awt/event/StressTest/MouseAndKeyEventStressTest.java JBR-6479,JBR-6090 gene
|
||||
java/awt/Focus/6378278/InputVerifierTest.java JBR-5799,JBR-6090 windows-all
|
||||
java/awt/Focus/6382144/EndlessLoopTest.java JBR-6090 windows-all
|
||||
java/awt/Focus/8282640/ScrollPaneFocusBugTest.java JBR-6090 windows-all
|
||||
java/awt/Focus/ActivateFocusTest.java JBR-7888 linux-all
|
||||
java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java 8252772,JBR-5799,JBR-6031 linux-all,windows-all
|
||||
java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java 8198618,JBR-814,JBR-6090 macosx-all,linux-all,windows-all
|
||||
java/awt/Focus/LabelScrollBarFocus.java JBR-6090 windows-x64
|
||||
@@ -57,7 +58,7 @@ java/awt/Mixing/OpaqueTest.java JBR-5707,JBR-6090 linux-all,windows-all
|
||||
java/awt/Mixing/OverlappingButtons.java JBR-5707,JBR-6090 linux-all,windows-all
|
||||
java/awt/Mixing/Validating.java JBR-5908,JBR-6090 linux-all,windows-all
|
||||
java/awt/MenuShortcut/ActionCommandTest.java JBR-8822 windows-all
|
||||
java/awt/MenuShortcut/FunctionKeyShortcut.java JBR-8732,JBR-9207 windows-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
java/awt/MenuShortcut/FunctionKeyShortcut.java JBR-8732,JBR-9207 windows-all,linux-6.15.8-100.fc41.x86_64
|
||||
java/awt/Modal/BlockedMouseInputTest2.java JBR-6090 windows-all
|
||||
java/awt/Modal/BlockedMouseInputTest3.java JBR-6134 windows-x64
|
||||
java/awt/Mouse/MouseEnterExitTest.java JBR-8096 linux-all,windows-all
|
||||
@@ -78,7 +79,7 @@ javax/swing/JSlider/6848475/bug6848475.java JBR-7329,JBR-7472 windows-all
|
||||
javax/swing/JSplitPane/4885629/bug4885629.java JBR-7270 macosx-all
|
||||
javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java JBR-8357 linux-all
|
||||
javax/swing/JTextArea/bug4265784.java JBR-7472 linux-all
|
||||
javax/swing/SwingUtilities/7146377/bug7146377.java JBR-4679,JBR-9254 windows-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64,linux-6.16.7-200.fc42.x86_64
|
||||
javax/swing/SwingUtilities/7146377/bug7146377.java JBR-4679,JBR-9254 windows-all,linux-6.15.8-100.fc41.x86_64
|
||||
javax/swing/text/DefaultCaret/HidingSelection/HidingSelectionTest.java JBR-8450 linux-all
|
||||
javax/swing/text/ParagraphView/6364882/bug6364882.java JBR-8324 linux-all
|
||||
javax/swing/text/StyledEditorKit/4506788/bug4506788.java JBR-8212 linux-all
|
||||
@@ -164,7 +165,6 @@ javax/swing/JComboBox/DisabledComboBoxFontTestAuto.java nobug generic-all
|
||||
javax/swing/JFrame/8175301/ScaledFrameBackgroundTest.java nobug generic-all
|
||||
javax/swing/JInternalFrame/8069348/bug8069348.java nobug generic-all
|
||||
javax/swing/JInternalFrame/8160248/JInternalFrameDraggingTest.java nobug generic-all
|
||||
javax/swing/JInternalFrame/Ctrli.java JBR-9362 windows-all
|
||||
javax/swing/JLabel/GetSpanHiDpiBug.java nobug generic-all
|
||||
javax/swing/JTabbedPane/TestBackgroundScrollPolicy.java nobug generic-all
|
||||
javax/swing/JTextArea/8149849/DNDTextToScaledArea.java nobug generic-all
|
||||
|
||||
@@ -7,11 +7,4 @@ javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java JBR-8357 linux
|
||||
javax/swing/text/ParagraphView/6364882/bug6364882.java JBR-8324 linux-all
|
||||
|
||||
jb/java/awt/wayland/RobotGetPixelTest.java JBR-8434 linux-all
|
||||
jb/java/awt/wayland/RobotGetPixelsTest.java JBR-8434 linux-all
|
||||
|
||||
|
||||
#
|
||||
# the below tests are not intended to be executed in S2 configurations because
|
||||
# the tests contains tags to be launched for various scales including S2
|
||||
#
|
||||
jb/javax/swing/wayland/WLPopupMoves.java nobug linux-all
|
||||
jb/java/awt/wayland/RobotGetPixelsTest.java JBR-8434 linux-all
|
||||
@@ -10,8 +10,7 @@ java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java JBR-8295 linux-x64
|
||||
|
||||
javax/swing/GraphicsConfigNotifier/StalePreferredSize.java JBR-7269 linux-all
|
||||
javax/swing/GraphicsConfigNotifier/TestMultiScreenGConfigNotify.java JBR-8266 linux-x64
|
||||
javax/swing/InputVerifier/VerifyTarget/VerifyTargetTest.java JBR-7520,JBR-9320 linux-aarch64,linux-6.14.9-arch1-1
|
||||
javax/swing/JComboBox/ShowPopupAfterHidePopupTest/ShowPopupAfterHidePopupTest.java JBR-9384 linux-all
|
||||
javax/swing/InputVerifier/VerifyTarget/VerifyTargetTest.java JBR-7520,JBR-9320 linux-6.8.0-1036-aws,linux-6.14.9-arch1-1
|
||||
javax/swing/JComponent/6989617/bug6989617.java JBR-8796 linux-all
|
||||
javax/swing/JDesktopPane/TestDesktopManagerNPE.java JBR-8449 linux-x64
|
||||
javax/swing/JEditorPane/JEditorPaneFontFallback.java JBR-8305 linux-all
|
||||
|
||||
@@ -9,10 +9,4 @@ javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java JBR-8357 linux
|
||||
javax/swing/text/ParagraphView/6364882/bug6364882.java JBR-8324 linux-all
|
||||
|
||||
jb/java/awt/wayland/RobotGetPixelTest.java JBR-8434 linux-all
|
||||
jb/java/awt/wayland/RobotGetPixelsTest.java JBR-8434 linux-all
|
||||
|
||||
#
|
||||
# the below tests are not intended to be executed in S2 configurations because
|
||||
# the tests contains tags to be launched for various scales including S2
|
||||
#
|
||||
jb/javax/swing/wayland/WLPopupMoves.java nobug linux-all
|
||||
jb/java/awt/wayland/RobotGetPixelsTest.java JBR-8434 linux-all
|
||||
Reference in New Issue
Block a user