|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT |
@Retention(value=RUNTIME) @Target(value=TYPE) public @interface MappedType
This annotation marks a class as a mapped object, which will go under bytecode
transformation at runtime. Mapped objects cannot be instantiated directly; a data
buffer must be mapped first and the mapped object instance will then be used as a
view on top of the buffer. Instead of a separate instance per "element" in the buffer,
only a single instance is used to manage everything. See MappedObject
for API details and org.lwjgl.test.mapped.TestMappedObject
for examples.
ByteBuffer
. Static fields are supported and they can have any type.
The purpose of mapped objects is to reduce the memory requirements required for the type
of data that are often used in OpenGL/OpenCL programming, while at the same time enabling
clean Java code. There are also performance benefits related to not having to copy data
between buffers and Java objects and the removal of bounds checking when accessing
buffer data.
Optional Element Summary | |
---|---|
int |
align
The mapped data memory alignment, in bytes. |
boolean |
autoGenerateOffsets
When autoGenerateOffsets is true, byte offsets of the mapped fields will be generated automatically. |
boolean |
cacheLinePadding
When true, SIZEOF will be increased (if necessary) so that it's a multiple of the CPU cache line size. |
int |
padding
The number of bytes to add to the total byte size. |
public abstract int padding
SIZEOF = max(field_offset + field_length) + padding
.
Cannot be used with cacheLinePadding()
.
public abstract boolean cacheLinePadding
MappedObject.malloc(int)
on the mapped object type will automatically use
CacheUtil.createByteBuffer(int)
instead of the unaligned BufferUtils.createByteBuffer(int)
.
Cannot be used with padding()
.
CacheUtil
public abstract int align
public abstract boolean autoGenerateOffsets
MappedField
annotation.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT |