Top Description Fields Constructors Methods
org.lwjgl.opengl

public Class ARBGPUShaderFP64

extends Object
Class Inheritance
Imports
java.nio.*, org.lwjgl.system.*

Native bindings to the ARB_gpu_shader_fp64 extension.

This extension allows GLSL shaders to use double-precision floating-point data types, including vectors and matrices of doubles. Doubles may be used as inputs, outputs, and uniforms.

The shading language supports various arithmetic and comparison operators on double-precision scalar, vector, and matrix types, and provides a set of built-in functions including:

Double-precision versions of angle, trigonometry, and exponential functions are not supported.

Implicit conversions are supported from integer and single-precision floating-point values to doubles, and this extension uses the relaxed function overloading rules specified by the ARB_gpu_shader5 extension to resolve ambiguities.

This extension provides API functions for specifying double-precision uniforms in the default uniform block, including functions similar to the uniform functions added by EXT_direct_state_access (if supported).

This extension provides an "LF" suffix for specifying double-precision constants. Floating-point constants without a suffix in GLSL are treated as single-precision values for backward compatibility with versions not supporting doubles; similar constants are treated as double-precision values in the "C" programming language.

This extension does not support interpolation of double-precision values; doubles used as fragment shader inputs must be qualified as "flat". Additionally, this extension does not allow vertex attributes with 64-bit components. That support is added separately by EXT_vertex_attrib_64bit.

Requires GL32 and GLSL 1.50. Promoted to core in OpenGL 4.0.

Field Summary

Modifier and TypeField and Description
public static final int
GL_DOUBLE_MAT2

Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.

public static final int
GL_DOUBLE_MAT2x3

Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.

public static final int
GL_DOUBLE_MAT2x4

Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.

public static final int
GL_DOUBLE_MAT3

Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.

public static final int
GL_DOUBLE_MAT3x2

Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.

public static final int
GL_DOUBLE_MAT3x4

Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.

public static final int
GL_DOUBLE_MAT4

Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.

public static final int
GL_DOUBLE_MAT4x2

Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.

public static final int
GL_DOUBLE_MAT4x3

Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.

public static final int
GL_DOUBLE_VEC2

Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.

public static final int
GL_DOUBLE_VEC3

Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.

public static final int
GL_DOUBLE_VEC4

Returned in the type parameter of GetActiveUniform, and GetTransformFeedbackVarying.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static double
glGetUniformd(int
the program object to be queried
program
,
int
the location of the uniform variable to be queried
location
)

Returns the double value(s) of a uniform variable.

public static void
glGetUniformdv(int
the program object to be queried
program
,
int
the location of the uniform variable to be queried
location
,
DoubleBuffer
the value of the specified uniform variable
params
)

Returns the double value(s) of a uniform variable.

public static void
glGetUniformdv(int program, int location, double[] params)

Array version of: GetUniformdv

public static native void
glProgramUniform1dEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
double
the uniform x value
x
)

DSA version of Uniform1d.

public static void
glProgramUniform1dvEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform variable
value
)

DSA version of Uniform1dv.

public static void
glProgramUniform1dvEXT(int program, int location, double[] value)

Array version of: ProgramUniform1dvEXT

public static native void
glProgramUniform2dEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
double
the uniform x value
x
,
double
the uniform y value
y
)

DSA version of Uniform2d.

public static void
glProgramUniform2dvEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform variable
value
)

DSA version of Uniform2dv.

public static void
glProgramUniform2dvEXT(int program, int location, double[] value)

Array version of: ProgramUniform2dvEXT

public static native void
glProgramUniform3dEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
double
the uniform x value
x
,
double
the uniform y value
y
,
double
the uniform z value
z
)

DSA version of Uniform3d.

public static void
glProgramUniform3dvEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform variable
value
)

DSA version of Uniform3dv.

public static void
glProgramUniform3dvEXT(int program, int location, double[] value)

Array version of: ProgramUniform3dvEXT

public static native void
glProgramUniform4dEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
double
the uniform x value
x
,
double
the uniform y value
y
,
double
the uniform z value
z
,
double
the uniform w value
w
)

DSA version of Uniform4d.

public static void
glProgramUniform4dvEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform variable
value
)

DSA version of Uniform4dv.

public static void
glProgramUniform4dvEXT(int program, int location, double[] value)

Array version of: ProgramUniform4dvEXT

public static void
glProgramUniformMatrix2dvEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

DSA version of UniformMatrix2dv.

public static void
glProgramUniformMatrix2dvEXT(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix2dvEXT

public static void
glProgramUniformMatrix2x3dvEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

DSA version of UniformMatrix2x3dv.

public static void
glProgramUniformMatrix2x3dvEXT(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix2x3dvEXT

public static void
glProgramUniformMatrix2x4dvEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

DSA version of UniformMatrix2x4dv.

public static void
glProgramUniformMatrix2x4dvEXT(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix2x4dvEXT

public static void
glProgramUniformMatrix3dvEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

DSA version of UniformMatrix3dv.

public static void
glProgramUniformMatrix3dvEXT(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix3dvEXT

public static void
glProgramUniformMatrix3x2dvEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

DSA version of UniformMatrix3x2dv.

public static void
glProgramUniformMatrix3x2dvEXT(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix3x2dvEXT

public static void
glProgramUniformMatrix3x4dvEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

DSA version of UniformMatrix3x4dv.

public static void
glProgramUniformMatrix3x4dvEXT(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix3x4dvEXT

public static void
glProgramUniformMatrix4dvEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

DSA version of UniformMatrix4dv.

public static void
glProgramUniformMatrix4dvEXT(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix4dvEXT

public static void
glProgramUniformMatrix4x2dvEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

DSA version of UniformMatrix4x2dv.

public static void
glProgramUniformMatrix4x2dvEXT(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix4x2dvEXT

public static void
glProgramUniformMatrix4x3dvEXT(int
the program object to update
program
,
int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

DSA version of UniformMatrix4x3dv.

public static void
glProgramUniformMatrix4x3dvEXT(int program, int location, boolean transpose, double[] value)

Array version of: ProgramUniformMatrix4x3dvEXT

public static void
glUniform1d(int
the location of the uniform variable to be modified
location
,
double
the uniform x value
x
)

Specifies the value of a double uniform variable for the current program object.

public static void
glUniform1dv(int
the location of the uniform variable to be modified
location
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single double uniform variable or a double uniform variable array for the current program object.

public static void
glUniform1dv(int location, double[] value)

Array version of: Uniform1dv

public static void
glUniform2d(int
the location of the uniform variable to be modified
location
,
double
the uniform x value
x
,
double
the uniform y value
y
)

Specifies the value of a dvec2 uniform variable for the current program object.

public static void
glUniform2dv(int
the location of the uniform variable to be modified
location
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single dvec2 uniform variable or a dvec2 uniform variable array for the current program object.

public static void
glUniform2dv(int location, double[] value)

Array version of: Uniform2dv

public static void
glUniform3d(int
the location of the uniform variable to be modified
location
,
double
the uniform x value
x
,
double
the uniform y value
y
,
double
the uniform z value
z
)

Specifies the value of a dvec3 uniform variable for the current program object.

public static void
glUniform3dv(int
the location of the uniform variable to be modified
location
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single dvec3 uniform variable or a dvec3 uniform variable array for the current program object.

public static void
glUniform3dv(int location, double[] value)

Array version of: Uniform3dv

public static void
glUniform4d(int
the location of the uniform variable to be modified
location
,
double
the uniform x value
x
,
double
the uniform y value
y
,
double
the uniform z value
z
,
double
the uniform w value
w
)

Specifies the value of a dvec4 uniform variable for the current program object.

public static void
glUniform4dv(int
the location of the uniform variable to be modified
location
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform variable
value
)

Specifies the value of a single dvec4 uniform variable or a dvec4 uniform variable array for the current program object.

public static void
glUniform4dv(int location, double[] value)

Array version of: Uniform4dv

public static void
glUniformMatrix2dv(int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat2 uniform variable or a dmat2 uniform variable array for the current program object.

public static void
glUniformMatrix2dv(int location, boolean transpose, double[] value)

Array version of: UniformMatrix2dv

public static void
glUniformMatrix2x3dv(int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat2x3 uniform variable or a dmat2x3 uniform variable array for the current program object.

public static void
glUniformMatrix2x3dv(int location, boolean transpose, double[] value)

Array version of: UniformMatrix2x3dv

public static void
glUniformMatrix2x4dv(int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat2x4 uniform variable or a dmat2x4 uniform variable array for the current program object.

public static void
glUniformMatrix2x4dv(int location, boolean transpose, double[] value)

Array version of: UniformMatrix2x4dv

public static void
glUniformMatrix3dv(int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat3 uniform variable or a dmat3 uniform variable array for the current program object.

public static void
glUniformMatrix3dv(int location, boolean transpose, double[] value)

Array version of: UniformMatrix3dv

public static void
glUniformMatrix3x2dv(int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat3x2 uniform variable or a dmat3x2 uniform variable array for the current program object.

public static void
glUniformMatrix3x2dv(int location, boolean transpose, double[] value)

Array version of: UniformMatrix3x2dv

public static void
glUniformMatrix3x4dv(int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat3x4 uniform variable or a dmat3x4 uniform variable array for the current program object.

public static void
glUniformMatrix3x4dv(int location, boolean transpose, double[] value)

Array version of: UniformMatrix3x4dv

public static void
glUniformMatrix4dv(int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat4 uniform variable or a dmat4 uniform variable array for the current program object.

public static void
glUniformMatrix4dv(int location, boolean transpose, double[] value)

Array version of: UniformMatrix4dv

public static void
glUniformMatrix4x2dv(int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat4x2 uniform variable or a dmat4x2 uniform variable array for the current program object.

public static void
glUniformMatrix4x2dv(int location, boolean transpose, double[] value)

Array version of: UniformMatrix4x2dv

public static void
glUniformMatrix4x3dv(int
the location of the uniform variable to be modified
location
,
boolean
whether to transpose the matrix as the values are loaded into the uniform variable
transpose
,
DoubleBuffer
a pointer to an array of count values that will be used to update the specified uniform matrix variable
value
)

Specifies the value of a single dmat4x3 uniform variable or a dmat4x3 uniform variable array for the current program object.

public static void
glUniformMatrix4x3dv(int location, boolean transpose, double[] value)

Array version of: UniformMatrix4x3dv

public static void
nglGetUniformdv(int program, int location, long params)

Unsafe version of: GetUniformdv

public static native void
nglProgramUniform1dvEXT(int program, int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array.
count
,
long value)

Unsafe version of: ProgramUniform1dvEXT

public static native void
nglProgramUniform2dvEXT(int program, int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array.
count
,
long value)

Unsafe version of: ProgramUniform2dvEXT

public static native void
nglProgramUniform3dvEXT(int program, int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array.
count
,
long value)

Unsafe version of: ProgramUniform3dvEXT

public static native void
nglProgramUniform4dvEXT(int program, int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array.
count
,
long value)

Unsafe version of: ProgramUniform4dvEXT

public static native void
nglProgramUniformMatrix2dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix2dvEXT

public static native void
nglProgramUniformMatrix2x3dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix2x3dvEXT

public static native void
nglProgramUniformMatrix2x4dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix2x4dvEXT

public static native void
nglProgramUniformMatrix3dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix3dvEXT

public static native void
nglProgramUniformMatrix3x2dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix3x2dvEXT

public static native void
nglProgramUniformMatrix3x4dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix3x4dvEXT

public static native void
nglProgramUniformMatrix4dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix4dvEXT

public static native void
nglProgramUniformMatrix4x2dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix4x2dvEXT

public static native void
nglProgramUniformMatrix4x3dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: ProgramUniformMatrix4x3dvEXT

public static void
nglUniform1dv(int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array.
count
,
long value)

Unsafe version of: Uniform1dv

public static void
nglUniform2dv(int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array.
count
,
long value)

Unsafe version of: Uniform2dv

public static void
nglUniform3dv(int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array.
count
,
long value)

Unsafe version of: Uniform3dv

public static void
nglUniform4dv(int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array.
count
,
long value)

Unsafe version of: Uniform4dv

public static void
nglUniformMatrix2dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: UniformMatrix2dv

public static void
nglUniformMatrix2x3dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: UniformMatrix2x3dv

public static void
nglUniformMatrix2x4dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: UniformMatrix2x4dv

public static void
nglUniformMatrix3dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: UniformMatrix3dv

public static void
nglUniformMatrix3x2dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: UniformMatrix3x2dv

public static void
nglUniformMatrix3x4dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: UniformMatrix3x4dv

public static void
nglUniformMatrix4dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: UniformMatrix4dv

public static void
nglUniformMatrix4x2dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: UniformMatrix4x2dv

public static void
nglUniformMatrix4x3dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.
count
,
boolean transpose, long value)

Unsafe version of: UniformMatrix4x3dv

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait