本文整理汇总了Java中sun.java2d.DestSurfaceProvider类的典型用法代码示例。如果您正苦于以下问题:Java DestSurfaceProvider类的具体用法?Java DestSurfaceProvider怎么用?Java DestSurfaceProvider使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
DestSurfaceProvider类属于sun.java2d包,在下文中一共展示了DestSurfaceProvider类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: update
import sun.java2d.DestSurfaceProvider; //导入依赖的package包/类
@Override
protected boolean update(Image bb) {
if (bb instanceof DestSurfaceProvider) {
Surface s = ((DestSurfaceProvider)bb).getDestSurface();
if (s instanceof AccelSurface) {
final int w = bb.getWidth(null);
final int h = bb.getHeight(null);
final boolean arr[] = { false };
final AccelSurface as = (AccelSurface)s;
RenderQueue rq = as.getContext().getRenderQueue();
rq.lock();
try {
BufferedContext.validateContext(as);
rq.flushAndInvokeNow(new Runnable() {
@Override
public void run() {
long psdops = as.getNativeOps();
arr[0] = updateWindowAccel(psdops, w, h);
}
});
} catch (InvalidPipeException e) {
// ignore, false will be returned
} finally {
rq.unlock();
}
return arr[0];
}
}
return super.update(bb);
}
示例2: testGC
import sun.java2d.DestSurfaceProvider; //导入依赖的package包/类
private static void testGC(GraphicsConfiguration gc) {
if (!(gc instanceof AccelGraphicsConfig)) {
System.out.println("Test passed: no hw accelerated configs found.");
return;
}
System.out.println("AccelGraphicsConfig exists, testing.");
AccelGraphicsConfig agc = (AccelGraphicsConfig) gc;
printAGC(agc);
testContext(agc);
VolatileImage vi = gc.createCompatibleVolatileImage(10, 10);
vi.validate(gc);
if (vi instanceof DestSurfaceProvider) {
System.out.println("Passed: VI is DestSurfaceProvider");
Surface s = ((DestSurfaceProvider) vi).getDestSurface();
if (s instanceof AccelSurface) {
System.out.println("Passed: Obtained Accel Surface");
printSurface((AccelSurface) s);
}
Graphics g = vi.getGraphics();
if (g instanceof DestSurfaceProvider) {
System.out.println("Passed: VI graphics is " +
"DestSurfaceProvider");
printSurface(((DestSurfaceProvider) g).getDestSurface());
}
} else {
System.out.println("VI is not DestSurfaceProvider");
}
testVICreation(agc, CAPS_RT_TEXTURE_ALPHA, TRANSLUCENT, RT_TEXTURE);
testVICreation(agc, CAPS_RT_TEXTURE_OPAQUE, OPAQUE, RT_TEXTURE);
testVICreation(agc, CAPS_RT_PLAIN_ALPHA, TRANSLUCENT, RT_PLAIN);
testVICreation(agc, agc.getContextCapabilities().getCaps(), OPAQUE,
TEXTURE);
testForNPEDuringCreation(agc);
}
示例3: update
import sun.java2d.DestSurfaceProvider; //导入依赖的package包/类
@Override
protected boolean update(Image bb) {
if (bb instanceof DestSurfaceProvider) {
Surface s = ((DestSurfaceProvider)bb).getDestSurface();
if (s instanceof AccelSurface) {
final boolean arr[] = { false };
final AccelSurface as = (AccelSurface)s;
final int w = as.getBounds().width;
final int h = as.getBounds().height;
RenderQueue rq = as.getContext().getRenderQueue();
rq.lock();
try {
BufferedContext.validateContext(as);
rq.flushAndInvokeNow(new Runnable() {
@Override
public void run() {
long psdops = as.getNativeOps();
arr[0] = updateWindowAccel(psdops, w, h);
}
});
} catch (InvalidPipeException e) {
// ignore, false will be returned
} finally {
rq.unlock();
}
return arr[0];
}
}
return super.update(bb);
}
示例4: update
import sun.java2d.DestSurfaceProvider; //导入依赖的package包/类
@Override
protected boolean update(Image bb) {
if (bb instanceof DestSurfaceProvider) {
Surface s = ((DestSurfaceProvider)bb).getDestSurface();
if (s instanceof AccelSurface) {
final int w = bb.getWidth(null);
final int h = bb.getHeight(null);
final boolean arr[] = { false };
final AccelSurface as = (AccelSurface)s;
RenderQueue rq = as.getContext().getRenderQueue();
rq.lock();
try {
as.getContext().validateContext(as);
rq.flushAndInvokeNow(new Runnable() {
public void run() {
long psdops = as.getNativeOps();
arr[0] = updateWindowAccel(psdops, w, h);
}
});
} catch (InvalidPipeException e) {
// ignore, false will be returned
} finally {
rq.unlock();
}
return arr[0];
}
}
return super.update(bb);
}
示例5: update
import sun.java2d.DestSurfaceProvider; //导入依赖的package包/类
@Override
protected boolean update(Image bb) {
if (bb instanceof DestSurfaceProvider) {
Surface s = ((DestSurfaceProvider)bb).getDestSurface();
if (s instanceof AccelSurface) {
final int w = bb.getWidth(null);
final int h = bb.getHeight(null);
final boolean arr[] = { false };
final AccelSurface as = (AccelSurface)s;
RenderQueue rq = as.getContext().getRenderQueue();
rq.lock();
try {
BufferedContext.validateContext(as);
rq.flushAndInvokeNow(new Runnable() {
public void run() {
long psdops = as.getNativeOps();
arr[0] = updateWindowAccel(psdops, w, h);
}
});
} catch (InvalidPipeException e) {
// ignore, false will be returned
} finally {
rq.unlock();
}
return arr[0];
}
}
return super.update(bb);
}
示例6: main
import sun.java2d.DestSurfaceProvider; //导入依赖的package包/类
public static void main(String[] args) {
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gd.getDefaultConfiguration();
VolatileImage vi = gc.createCompatibleVolatileImage(100, 100);
vi.validate(gc);
VolatileImage vi1 = gc.createCompatibleVolatileImage(100, 100);
vi1.validate(gc);
if (!(vi instanceof DestSurfaceProvider)) {
System.out.println("Test considered PASSED: no HW acceleration");
return;
}
DestSurfaceProvider p = (DestSurfaceProvider)vi;
Surface s = p.getDestSurface();
if (!(s instanceof AccelSurface)) {
System.out.println("Test considered PASSED: no HW acceleration");
return;
}
AccelSurface dst = (AccelSurface)s;
Graphics g = vi.createGraphics();
g.drawImage(vi1, 95, 95, null);
g.setColor(Color.red);
g.fillRect(0, 0, 100, 100);
g.setColor(Color.black);
g.fillRect(0, 0, 100, 100);
// after this the validated context color is black
RenderQueue rq = dst.getContext().getRenderQueue();
rq.lock();
try {
dst.getContext().saveState();
dst.getContext().restoreState();
} finally {
rq.unlock();
}
// this will cause ResetPaint (it will set color to extended EA=ff,
// which is ffffffff==Color.white)
g.drawImage(vi1, 95, 95, null);
// now try filling with black again, but it will come up as white
// because this fill rect won't validate the color properly
g.setColor(Color.black);
g.fillRect(0, 0, 100, 100);
BufferedImage bi = vi.getSnapshot();
if (bi.getRGB(50, 50) != Color.black.getRGB()) {
throw new RuntimeException("Test FAILED: found color="+
Integer.toHexString(bi.getRGB(50, 50))+" instead of "+
Integer.toHexString(Color.black.getRGB()));
}
System.out.println("Test PASSED.");
}
示例7: testVICreation
import sun.java2d.DestSurfaceProvider; //导入依赖的package包/类
private static void testVICreation(AccelGraphicsConfig agc, int cap,
int transparency, int type)
{
int caps = agc.getContextCapabilities().getCaps();
int w = 11, h = 17;
VolatileImage vi =
agc.createCompatibleVolatileImage(w, h, transparency, type);
if ((cap & caps) != 0) {
if (vi == null) {
System.out.printf("Failed: cap=%d is supported but " +
"image wasn't created\n", cap);
throw new RuntimeException("Failed: image wasn't created " +
"for supported cap");
} else {
if (!(vi instanceof DestSurfaceProvider)) {
throw new RuntimeException("Failed: created VI is not " +
"DestSurfaceProvider");
}
Surface s = ((DestSurfaceProvider) vi).getDestSurface();
if (s instanceof AccelSurface) {
AccelSurface as = (AccelSurface) s;
printSurface(as);
if (as.getType() != type) {
throw new RuntimeException("Failed: returned VI is" +
" of incorrect type: " + as.getType() +
" requested type=" + type);
} else {
System.out.printf("Passed: VI of type %d was " +
"created for cap=%d\n", type, cap);
}
if (as.getType() == TEXTURE) {
boolean ex = false;
try {
Graphics g = vi.getGraphics();
g.dispose();
} catch (UnsupportedOperationException e) {
ex = true;
}
if (!ex) {
throw new RuntimeException("Failed: " +
"texture.getGraphics() didn't throw exception");
} else {
System.out.println("Passed: VI.getGraphics()" +
" threw exception for texture-based VI");
}
}
} else {
System.out.printf("Passed: VI of type %d was " +
"created for cap=%d but accel surface is null\n",
type, cap);
}
}
} else {
if (vi != null) {
throw new RuntimeException("Failed: created VI for " +
"unsupported cap=" + cap);
}
}
}