Java-Gaming.org    
Featured games (78)
games approved by the League of Dukes
Games in Showcase (427)
Games in Android Showcase (89)
games submitted by our members
Games in WIP (466)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  MappedObject  (Read 1547 times)
0 Members and 1 Guest are viewing this topic.
Offline integeruser

Junior Member


Medals: 11



« Posted 2012-02-02 23:35:50 »

Hi, i'm trying to understand how this http://lwjgl.org/javadoc/org/lwjgl/util/mapped/MappedObject.html class works. I think this is what i need to convert in a standard way c++ structs; i searched a bit but i didn't find any resources :\ I want to use this class properly from the start, so can someone help me? Maybe with a simple example?  Grin
Thanks in advance,

Francesco
Offline ra4king

JGO Kernel


Medals: 322
Projects: 2
Exp: 4 years


I'm the King!


« Reply #1 - Posted 2012-02-03 04:17:51 »

The Official Thread by Riven

Offline integeruser

Junior Member


Medals: 11



« Reply #2 - Posted 2012-02-03 15:42:15 »

Thanks for the reply.
I saw that thread but the links in the first post are broken and the example class MappedVec3 doesn't compile for me so i thought it is an old thread.
The compilation fails because "the attribute sizeof is undefined for the annotation type MappedType".
I referenced to the build path lwjgl_util.jar. Am i missing something?
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline theagentd
« Reply #3 - Posted 2012-02-03 16:40:14 »

An example of a mapped particle inner class (more like a struct though...):
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
    protected static class MappedParticle extends MappedObject {

        @MappedField(byteOffset = 0)
        private float x;
        @MappedField(byteOffset = 4)
        private float y;
        @MappedField(byteOffset = 8)
        private byte r;
        @MappedField(byteOffset = 9)
        private byte g;
        @MappedField(byteOffset = 10)
        private byte b;
        @MappedField(byteOffset = 11)
        private byte a;

        public void init(float x, float y, float r, float g, float b) {
            this.x = x;
            this.y = y;
            this.r = (byte) (r * 255);
            this.g = (byte) (g * 255);
            this.b = (byte) (b * 255);
            a = (byte) 255;
        }

        public void update(float xSpeed, float ySpeed) {
            x += xSpeed;
            y += ySpeed;
        }
    }


Starting the program with MappedObjects enabled (ParticleTest8 is my main class name):
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
    public static void main(String[] args) {
        MappedObjectTransformer.register(MappedParticle.class);
        if (MappedObjectClassLoader.fork(ParticleTest8.class, args)) {
            return;
        }

        //releaseInit();

        new ParticleTest8().gameloop();
    }


Creating and using individual objects:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
ByteBuffer buffer = BufferUtils.createByteBuffer(particleByteSize * numParticles);
MappedParticle mappedParticleData = MappedParticle.map(buffer);

//OR (untested code):
//MappedParticle mappedParticleData = MappedParticle.malloc(numParticles);
//ByteBuffer buffer = mappedParticleData.backingByteBuffer();

for (int i = 0; i < numParticles; i++) {
    mappedParticleData.view = i;
    mappedParticleData.init(...);
}


This should get you started...

Myomyomyo.
Offline Spasi
« Reply #4 - Posted 2012-02-03 19:41:33 »

I'd just like to point out that the @MappedField annotation is optional. It's useful only when you require custom padding/alignment of the mapped fields.

For a complete example see org.lwjgl.test.opengl.sprites.SpriteShootoutMapped in the LWJGL distribution.
Offline integeruser

Junior Member


Medals: 11



« Reply #5 - Posted 2012-02-03 23:08:34 »

Thank you guys, i understand now.
I played a bit with these classes, and i realized that they make code too difficult to read for the project I'm doing, so i won't use them.
But thanks again for the help Smiley
 
Francesco
 
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (77 views)
2014-04-15 18:08:23

BurntPizza (69 views)
2014-04-15 03:46:01

UprightPath (81 views)
2014-04-14 17:39:50

UprightPath (66 views)
2014-04-14 17:35:47

Porlus (82 views)
2014-04-14 15:48:38

tom_mai78101 (106 views)
2014-04-10 04:04:31

BurntPizza (165 views)
2014-04-08 23:06:04

tom_mai78101 (261 views)
2014-04-05 13:34:39

trollwarrior1 (211 views)
2014-04-04 12:06:45

CJLetsGame (221 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!