本文整理匯總了Java中java.awt.AlphaComposite.SrcOver方法的典型用法代碼示例。如果您正苦於以下問題:Java AlphaComposite.SrcOver方法的具體用法?Java AlphaComposite.SrcOver怎麽用?Java AlphaComposite.SrcOver使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類java.awt.AlphaComposite
的用法示例。
在下文中一共展示了AlphaComposite.SrcOver方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: drawGlyphList
import java.awt.AlphaComposite; //導入方法依賴的package包/類
@Override
protected void drawGlyphList(SunGraphics2D sg2d, GlyphList gl) {
/*
* The native drawGlyphList() only works with two composite types:
* - CompositeType.SrcOver (with any extra alpha), or
* - CompositeType.Xor
*/
Composite comp = sg2d.composite;
if (comp == AlphaComposite.Src) {
/*
* In addition to the composite types listed above, the logic
* in OGL/D3DSurfaceData.validatePipe() allows for
* CompositeType.SrcNoEa, but only in the presence of an opaque
* color. If we reach this case, we know the color is opaque,
* and therefore SrcNoEa is the same as SrcOverNoEa, so we
* override the composite here.
*/
comp = AlphaComposite.SrcOver;
}
rq.lock();
try {
validateContext(sg2d, comp);
enqueueGlyphList(sg2d, gl);
} finally {
rq.unlock();
}
}
示例2: getComposite
import java.awt.AlphaComposite; //導入方法依賴的package包/類
@Override
protected AlphaComposite getComposite() {
return AlphaComposite.SrcOver;
}
示例3: MaskFill
import java.awt.AlphaComposite; //導入方法依賴的package包/類
@Override
public void MaskFill(SunGraphics2D sg2d, SurfaceData sData,
Composite comp,
final int x, final int y, final int w, final int h,
final byte[] mask,
final int maskoff, final int maskscan)
{
AlphaComposite acomp = (AlphaComposite)comp;
if (acomp.getRule() != AlphaComposite.SRC_OVER) {
comp = AlphaComposite.SrcOver;
}
rq.lock();
try {
validateContext(sg2d, comp, BufferedContext.USE_MASK);
// we adjust the mask length so that the mask ends on a
// 4-byte boundary
int maskBytesRequired;
if (mask != null) {
// we adjust the mask length so that the mask ends on a
// 4-byte boundary
maskBytesRequired = (mask.length + 3) & (~3);
} else {
// mask not needed
maskBytesRequired = 0;
}
int totalBytesRequired = 32 + maskBytesRequired;
RenderBuffer buf = rq.getBuffer();
if (totalBytesRequired <= buf.capacity()) {
if (totalBytesRequired > buf.remaining()) {
// process the queue first and then enqueue the mask
rq.flushNow();
}
buf.putInt(MASK_FILL);
// enqueue parameters
buf.putInt(x).putInt(y).putInt(w).putInt(h);
buf.putInt(maskoff);
buf.putInt(maskscan);
buf.putInt(maskBytesRequired);
if (mask != null) {
// enqueue the mask
int padding = maskBytesRequired - mask.length;
buf.put(mask);
if (padding != 0) {
buf.position(buf.position() + padding);
}
}
} else {
// queue is too small to accommodate entire mask; perform
// the operation directly on the queue flushing thread
rq.flushAndInvokeNow(new Runnable() {
public void run() {
maskFill(x, y, w, h,
maskoff, maskscan, mask.length, mask);
}
});
}
} finally {
rq.unlock();
}
}
示例4: MaskBlit
import java.awt.AlphaComposite; //導入方法依賴的package包/類
@Override
public void MaskBlit(SurfaceData src, SurfaceData dst,
Composite comp, Region clip,
int srcx, int srcy,
int dstx, int dsty,
int width, int height,
byte[] mask, int maskoff, int maskscan)
{
if (width <= 0 || height <= 0) {
return;
}
if (mask == null) {
// no mask involved; delegate to regular blit loop
if (blitop == null) {
blitop = Blit.getFromCache(src.getSurfaceType(),
CompositeType.AnyAlpha,
this.getDestType());
}
blitop.Blit(src, dst,
comp, clip,
srcx, srcy, dstx, dsty,
width, height);
return;
}
AlphaComposite acomp = (AlphaComposite)comp;
if (acomp.getRule() != AlphaComposite.SRC_OVER) {
comp = AlphaComposite.SrcOver;
}
rq.lock();
try {
validateContext(dst, comp, clip);
RenderBuffer buf = rq.getBuffer();
int totalBytesRequired = 20 + (width * height * 4);
/*
* REMIND: we should fix this so that it works with tiles that
* are larger than the entire buffer, but the native
* OGL/D3DMaskBlit isn't even prepared for tiles larger
* than 32x32 pixels, so there's no urgency here...
*/
rq.ensureCapacity(totalBytesRequired);
// enqueue parameters and tile pixels
int newpos = enqueueTile(buf.getAddress(), buf.position(),
src, src.getNativeOps(), srcTypeVal,
mask, mask.length, maskoff, maskscan,
srcx, srcy, dstx, dsty,
width, height);
buf.position(newpos);
} finally {
rq.unlock();
}
}