Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/java.desktop/macosx/classes/sun/java2d/DataBufferNIOInt.java
41152 views
1
/*
2
* Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle in the LICENSE file that accompanied this code.
10
*
11
* This code is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
* version 2 for more details (a copy is included in the LICENSE file that
15
* accompanied this code).
16
*
17
* You should have received a copy of the GNU General Public License version
18
* 2 along with this work; if not, write to the Free Software Foundation,
19
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
*
21
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
26
package sun.java2d;
27
28
import java.awt.image.DataBuffer;
29
import java.nio.*;
30
31
public final class DataBufferNIOInt extends DataBuffer {
32
33
/** The default data bank. */
34
IntBuffer data;
35
36
/** All data banks */
37
IntBuffer[] bankdata;
38
39
/**
40
* Constructs an integer-based {@code DataBuffer} with a single bank
41
* and the specified size.
42
*
43
* @param size The size of the {@code DataBuffer}.
44
*/
45
public DataBufferNIOInt(int size) {
46
super(TYPE_INT,size);
47
//+++gdb how to get sizeof(int) in java? Using 4 for now.
48
data = getBufferOfSize(size * 4).asIntBuffer();
49
bankdata = new IntBuffer[1];
50
bankdata[0] = data;
51
}
52
53
/**
54
* Returns the default (first) IntBuffer in {@code DataBuffer}.
55
*
56
* @return The first IntBuffer.
57
*/
58
public IntBuffer getBuffer() {
59
return data;
60
}
61
62
/**
63
* Returns the Buffer for the specified bank.
64
*
65
* @param bank The bank whose Buffer you want to get.
66
* @return The Buffer for the specified bank.
67
*/
68
public IntBuffer getBuffer(int bank) {
69
return bankdata[bank];
70
}
71
72
/**
73
* Returns the default (first) int data array in {@code DataBuffer}.
74
*
75
* @return The first integer data array.
76
*/
77
public int[] getData() {
78
return data.array();
79
}
80
81
/**
82
* Returns the data array for the specified bank.
83
*
84
* @param bank The bank whose data array you want to get.
85
* @return The data array for the specified bank.
86
*/
87
public int[] getData(int bank) {
88
return bankdata[bank].array();
89
}
90
91
/**
92
* Returns the data arrays for all banks.
93
* @return All of the data arrays.
94
*/
95
public int[][] getBankData() {
96
// Unsupported.
97
return null;
98
}
99
100
/**
101
* Returns the requested data array element from the first (default) bank.
102
*
103
* @param i The data array element you want to get.
104
* @return The requested data array element as an integer.
105
* @see #setElem(int, int)
106
* @see #setElem(int, int, int)
107
*/
108
public int getElem(int i) {
109
return data.get(i+offset);
110
}
111
112
/**
113
* Returns the requested data array element from the specified bank.
114
*
115
* @param bank The bank from which you want to get a data array element.
116
* @param i The data array element you want to get.
117
* @return The requested data array element as an integer.
118
* @see #setElem(int, int)
119
* @see #setElem(int, int, int)
120
*/
121
public int getElem(int bank, int i) {
122
return bankdata[bank].get(i+offsets[bank]);
123
}
124
125
/**
126
* Sets the requested data array element in the first (default) bank
127
* to the specified value.
128
*
129
* @param i The data array element you want to set.
130
* @param val The integer value to which you want to set the data array element.
131
* @see #getElem(int)
132
* @see #getElem(int, int)
133
*/
134
public void setElem(int i, int val) {
135
data.put(i+offset, val);
136
}
137
138
/**
139
* Sets the requested data array element in the specified bank
140
* to the integer value {@code i}.
141
* @param bank The bank in which you want to set the data array element.
142
* @param i The data array element you want to set.
143
* @param val The integer value to which you want to set the specified data array element.
144
* @see #getElem(int)
145
* @see #getElem(int, int)
146
*/
147
public void setElem(int bank, int i, int val) {
148
bankdata[bank].put(i+offsets[bank], val);
149
}
150
151
ByteBuffer getBufferOfSize(int size)
152
{
153
ByteBuffer buffer = ByteBuffer.allocateDirect(size);
154
buffer.order(ByteOrder.nativeOrder());
155
return buffer;
156
}
157
}
158
159