29package com.jogamp.nativewindow;
31import java.util.ArrayList;
34import com.jogamp.nativewindow.VisualIDHolder.VIDType;
44 public boolean match(
final C cap);
48 final int minColorCompBits;
50 this.minColorCompBits = minColorCompBits;
52 public final boolean match(
final C cap) {
53 return cap.getRedBits() < minColorCompBits ||
54 cap.getGreenBits() < minColorCompBits ||
55 cap.getBlueBits() < minColorCompBits ||
56 cap.getAlphaBits() < minColorCompBits;
60 final int maxColorCompBits;
62 this.maxColorCompBits = maxColorCompBits;
64 public final boolean match(
final C cap) {
65 return cap.getRedBits() > maxColorCompBits ||
66 cap.getGreenBits() > maxColorCompBits ||
67 cap.getBlueBits() > maxColorCompBits ||
68 cap.getAlphaBits() > maxColorCompBits;
72 final int requiredNativeVisualID;
74 this.requiredNativeVisualID = requiredNativeVisualID;
76 public final boolean match(
final C cap) {
77 return cap.getVisualID(
VIDType.
NATIVE) != requiredNativeVisualID;
87 public static <C extends CapabilitiesImmutable> ArrayList<C>
removeMatching(
final ArrayList<C> availableCaps,
final List<
Test<C>> criteria) {
88 final ArrayList<C> removedCaps =
new ArrayList<C>();
89 for(
int i=0; i<availableCaps.size(); ) {
90 final C cap = availableCaps.get(i);
91 boolean removed =
false;
92 for(
int j=0; !removed && j<criteria.size(); j++) {
93 if( criteria.get(j).match(cap) ) {
94 removedCaps.add(availableCaps.remove(i));
116 final int requiredNativeVisualID) {
118 return new ArrayList<C>();
120 final ArrayList<Test<C>> criteria =
new ArrayList<Test<C>>();
131 public static <C extends CapabilitiesImmutable> ArrayList<C>
removeMoreColorComps(
final ArrayList<C> availableCaps,
132 final int maxColorCompBits) {
133 final ArrayList<Test<C>> criteria =
new ArrayList<Test<C>>();
152 final int maxColorCompBits,
final int requiredNativeVisualID) {
153 final ArrayList<Test<C>> criteria =
new ArrayList<Test<C>>();
TestLessColorCompBits(final int minColorCompBits)
final boolean match(final C cap)
TestMoreColorCompBits(final int maxColorCompBits)
final boolean match(final C cap)
TestUnmatchedNativeVisualID(final int requiredNativeVisualID)
final boolean match(final C cap)
Diverse reusable CapabilitiesImmutable list filter.
static< C extends CapabilitiesImmutable > ArrayList< C > removeMoreColorComps(final ArrayList< C > availableCaps, final int maxColorCompBits)
Filter removing all CapabilitiesImmutable derived elements having color components > maxColorCompBits...
static< C extends CapabilitiesImmutable > ArrayList< C > removeMoreColorCompsAndUnmatchingNativeVisualID(final ArrayList< C > availableCaps, final int maxColorCompBits, final int requiredNativeVisualID)
Filter removing all CapabilitiesImmutable derived elements having color components > maxColorCompBits...
static< C extends CapabilitiesImmutable > ArrayList< C > removeUnmatchingNativeVisualID(final ArrayList< C > availableCaps, final int requiredNativeVisualID)
If requiredNativeVisualID is not VisualIDHolder.VID_UNDEFINED and hence specific, this filter removes...
static< C extends CapabilitiesImmutable > ArrayList< C > removeMatching(final ArrayList< C > availableCaps, final List< Test< C > > criteria)
Removing all CapabilitiesImmutable derived elements matching the given criteria Test list.
boolean match(final C cap)
Specifies an immutable set of capabilities that a window's rendering context must support,...
Visual ID holder interface.
static final int VID_UNDEFINED
getVisualID(VIDType) result indicating an undefined value, which could be cause by an unsupported que...