JOGL v2.6.0-rc-20250712
JOGL, High-Performance Graphics Binding for Java™ (public API).
CapabilitiesImmutable.java
Go to the documentation of this file.
1/**
2 * Copyright 2010-2023 JogAmp Community. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without modification, are
5 * permitted provided that the following conditions are met:
6 *
7 * 1. Redistributions of source code must retain the above copyright notice, this list of
8 * conditions and the following disclaimer.
9 *
10 * 2. Redistributions in binary form must reproduce the above copyright notice, this list
11 * of conditions and the following disclaimer in the documentation and/or other materials
12 * provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
21 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
22 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * The views and conclusions contained in the software and documentation are those of the
25 * authors and should not be interpreted as representing official policies, either expressed
26 * or implied, of JogAmp Community.
27 */
28
29package com.jogamp.nativewindow;
30
31import com.jogamp.common.type.WriteCloneable;
32
33/**
34 * Specifies an immutable set of capabilities that a window's rendering context
35 * must support, such as color depth per channel.
36 *
37 * @see com.jogamp.nativewindow.Capabilities
38 */
39public interface CapabilitiesImmutable extends VisualIDHolder, WriteCloneable, Comparable<CapabilitiesImmutable> {
40
41 /**
42 * Returns the number of bits for the color buffer's red
43 * component. On some systems only the color depth, which is the sum of the
44 * red, green, and blue bits, is considered.
45 */
47
48 /**
49 * Returns the number of bits for the color buffer's green
50 * component. On some systems only the color depth, which is the sum of the
51 * red, green, and blue bits, is considered.
52 */
54
55 /**
56 * Returns the number of bits for the color buffer's blue
57 * component. On some systems only the color depth, which is the sum of the
58 * red, green, and blue bits, is considered.
59 */
61
62 /**
63 * Returns the number of bits for the color buffer's alpha
64 * component. On some systems only the color depth, which is the sum of the
65 * red, green, and blue bits, is considered.
66 */
68
69 /**
70 * Returns whether an opaque or translucent surface is requested, supported or chosen.
71 * <p>
72 * Default is true, i.e. opaque.
73 * </p>
74 */
76
77 /**
78 * Returns whether an on- or offscreen surface is requested, available or chosen.
79 * <p>
80 * Default is true, i.e. onscreen.
81 * </p>
82 * <p>
83 * Mind that an capabilities intance w/ <i>available</i> semantics
84 * may show onscreen, but also the offscreen modes FBO, Pbuffer or {@link #setBitmap(boolean) bitmap}.
85 * This is valid, since one native configuration maybe used for either functionality.
86 * </p>
87 */
88 boolean isOnscreen();
89
90 /**
91 * Returns whether bitmap offscreen mode is requested, available or chosen.
92 * <p>
93 * Default is false.
94 * </p>
95 * <p>
96 * For chosen capabilities, only the selected offscreen surface is set to <code>true</code>.
97 * </p>
98 */
99 boolean isBitmap();
100
101 /**
102 * Gets the transparent red value for the frame buffer configuration. This
103 * value is undefined if; equals true.
104 */
106
107 /**
108 * Gets the transparent green value for the frame buffer configuration. This
109 * value is undefined if; equals true.
110 */
112
113 /**
114 * Gets the transparent blue value for the frame buffer configuration. This
115 * value is undefined if; equals true.
116 */
118
119 /**
120 * Gets the transparent alpha value for the frame buffer configuration. This
121 * value is undefined if; equals true.
122 */
124
125 /** Equality over the immutable attributes of both objects. */
126 @Override
127 boolean equals(Object obj);
128
129 /** Hash code over the immutable attributes. */
130 @Override
131 int hashCode();
132
133 /** Return a textual representation of this object. Use the given StringBuilder [optional]. */
134 StringBuilder toString(StringBuilder sink);
135
136 /** Returns a textual representation of this object. */
137 @Override
138 String toString();
139}
Specifies an immutable set of capabilities that a window's rendering context must support,...
StringBuilder toString(StringBuilder sink)
Return a textual representation of this object.
int getAlphaBits()
Returns the number of bits for the color buffer's alpha component.
int getBlueBits()
Returns the number of bits for the color buffer's blue component.
int getTransparentAlphaValue()
Gets the transparent alpha value for the frame buffer configuration.
boolean isBitmap()
Returns whether bitmap offscreen mode is requested, available or chosen.
int getRedBits()
Returns the number of bits for the color buffer's red component.
int hashCode()
Hash code over the immutable attributes.
int getGreenBits()
Returns the number of bits for the color buffer's green component.
boolean isOnscreen()
Returns whether an on- or offscreen surface is requested, available or chosen.
int getTransparentGreenValue()
Gets the transparent green value for the frame buffer configuration.
int getTransparentRedValue()
Gets the transparent red value for the frame buffer configuration.
boolean isBackgroundOpaque()
Returns whether an opaque or translucent surface is requested, supported or chosen.
int getTransparentBlueValue()
Gets the transparent blue value for the frame buffer configuration.
boolean equals(Object obj)
Equality over the immutable attributes of both objects.
String toString()
Returns a textual representation of this object.