[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Function set-gl-vertex-array in Guile-opengl
From: |
Luis Souto Graña |
Subject: |
Re: Function set-gl-vertex-array in Guile-opengl |
Date: |
Thu, 31 Jan 2019 12:14:32 +0100 |
I think I almost have it. I made a minimal example with a square. It starts
but the square doesn't appear. If anyone finds where the fault is, please
let me know.
(use-modules (gl) (glut))
(use-modules (gl contrib packed-struct))
(define-packed-struct vertices
(x float)
(y float)
(z float)
(r float)
(g float)
(b float))
(define vertices-square (make-packed-array vertices 4))
(pack vertices-square 0 vertices 20.0 20.0 0.0 0.0 0.0 0.0)
(pack vertices-square 1 vertices 80.0 20.0 0.0 0.0 0.0 0.0)
(pack vertices-square 2 vertices 80.0 80.0 0.0 0.0 0.0 0.0)
(pack vertices-square 3 vertices 20.0 80.0 0.0 0.0 0.0 0.0)
;;vertices-square
;;#vu8(0 0 160 65 0 0 160 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
;; 0 0 160 66 0 0 160 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
;; 0 0 160 66 0 0 160 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
;; 0 0 160 65 0 0 160 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
(define (init)
(gl-ortho 0.0 100.0 0.0 100.0 -1.0 1.0)
(set-gl-clear-color 1.0 1.0 1.0 0.0))
(define (draw-scene)
(gl-clear (clear-buffer-mask color-buffer))
(gl-color 0 0 0)
;;(gl-begin (begin-mode polygon)
;; (gl-vertex 20.0 20.0 0.0)
;; (gl-vertex 80.0 20.0 0.0)
;; (gl-vertex 80.0 80.0 0.0)
;; (gl-vertex 20.0 80.0 0.0)))
(set-gl-vertex-array (vertex-pointer-type float)
vertices-square
#:stride (packed-struct-size vertices) ;; 24
#:offset (packed-struct-offset vertices x)) ;; 0
(set-gl-color-array (color-pointer-type float)
vertices-square
#:stride (packed-struct-size vertices) ;; 24
#:offset (packed-struct-offset vertices r)) ;; 12
(gl-draw-arrays (begin-mode polygon) 0 (packed-array-length
vertices-square vertices))) ;; 4
(define (on-display)
(init)
(draw-scene)
(swap-buffers))
(initialize-glut #:window-size '(800 . 800))
(make-window "page 24")
(set-display-callback (lambda() (on-display)))
(glut-main-loop)
El lun., 28 ene. 2019 a las 14:30, Luis Souto Graña (<
address@hidden>) escribió:
> Andy Wingo doesn't use f32vectors, he uses packed-struct.scm https://
> github.com/guildhall/guile-opengl/blob/master/gl/contrib/packed-struct.scm
> . There are bytevector-ieee-single-native-set in it.
>
> It works because I wrote:
>
> $ cd /home/spectrumgomas/guile-opengl-01.0/examples/particle-system
> $ guile client-arrays.scm
>
> And I see the particle system.
>
> Now I just need to understand it. :)
>
> El sáb., 26 ene. 2019 a las 16:39, Daniel Llorens (<
> address@hidden>) escribió:
>
>>
>>
>> > On 26 Jan 2019, at 17:05, Luis Souto Graña <address@hidden>
>> wrote:
>> >
>> > The structure of my byvector is:
>> >
>> > 30.0(float) --- IEE754 converter --> 0x41F00000 (hexadecimal) ---
>> little endian ---> 0000F041 --- hexadecimal to decimal converter ---> 00 00
>> 240 65
>> >
>> > But I didn't notice and there's a lot of zeros before the next 00 00
>> 240 65.
>> >
>> > I have to study what is the structure of a f32vector in Guile. I don't
>> know it.
>>
>> The storage of an f32vector is exactly the same as if you declared float
>> a[n] in C, one float after another, each taking 4 bytes. Endianness doesn't
>> matter if you are producing and consuming the floats on the same machine.
>>
>> The source data is floats, OpenGL takes floats, you don't need to deal
>> with bytes.
>>
>>
- Re: Function set-gl-vertex-array in Guile-opengl, (continued)
- Re: Function set-gl-vertex-array in Guile-opengl, Catonano, 2019/01/26
- Re: Function set-gl-vertex-array in Guile-opengl, Daniel Llorens, 2019/01/25
- Re: Function set-gl-vertex-array in Guile-opengl, Luis Souto Graña, 2019/01/25
- Re: Function set-gl-vertex-array in Guile-opengl, Daniel Llorens, 2019/01/26
- Re: Function set-gl-vertex-array in Guile-opengl, Daniel Llorens, 2019/01/26
- Re: Function set-gl-vertex-array in Guile-opengl, Luis Souto Graña, 2019/01/26
- Re: Function set-gl-vertex-array in Guile-opengl, Daniel Llorens, 2019/01/26
- Re: Function set-gl-vertex-array in Guile-opengl, Luis Souto Graña, 2019/01/26
- Re: Function set-gl-vertex-array in Guile-opengl, Luis Souto Graña, 2019/01/28
- Re: Function set-gl-vertex-array in Guile-opengl,
Luis Souto Graña <=