anchor.diff:                           0.6 0.75 0.0 1.0
   			 -0.75 0.75 0.0 1.0
   			 -0.75 -0.6 0.0 1.0)) ;very strange: enter negative values for alpha... wtf
  -(defparameter *vertex-positions* (arc::create-gl-array-from-vector *verts*))
  +
  +;; if *vectex-positions* isn't of type gl:gl-array (which it gets from gl:alloc-gl-array)
  +;; (gl:buffer-data .. *vector-positions*) will complain explicitly about this, and sdl2
  +;; will crash
  +(defvar *vertex-positions* (arc:create-gl-array-from-vector *verts*))
  +
  +;; alternatively
  +;; (cffi:foreign-alloc :float :initial-contents '(0.75  0.75 0.0 1.0
  +;; 						       0.75 -0.75 0.0 1.0
  +;; 						       -0.75 -0.75 0.0 1.0
  +;; 						       0.6 0.75 0.0 1.0
  +;; 						       -0.75 0.75 0.0 1.0
  +;; 						       -0.75 -0.6 0.0 1.0))
  +;; can be used, the gl:gl-array is just a cl-struct with the above forein memory pointer
  +;; plus size and type information attached to it. Further benefit is that most of the
  +;; "gl:" wrapper functions expect data in the form of a gl-array. Such as (gl:buffer-data
  +;; ..)  while the actuall bindings (%gl:buffer-data ...) (note the "%" sign indicating the
  +;; direct gl API binings) can take the direct forein data as provided by the above
  +;; (cffi:foreing-alloc.. ). If the size information is needed, that's where gl-array comes
  +;; in handy, being struct with the field "size" so we can simply (gl::gl-array-size
  +;; <gl-array>) and get it.
  +;; Note "size" stores the number of elements of a certain :type that is stored within, If
  +;; the byte size is needed you need to get the (cffi:foreign-type-size (gl::gl-array-type
  +;; <gl-array>)) and finally multiply it by the (gl::gl-array-size <gl-array>) above.
  +;; Anyway, that's pertaining dealing with the API at the lowlevel, there are already lispy
  +;; solutions available to this, such as in the code for Chris Bagley's CEPL - "code eval
  +;; play loop" (LLGPL'd).
   
   ;;shader functions:
  -(defparameter *vertex-shader* "
  +(defvar *vertex-shader* "
   #version 330  //coments desu!!!
   /* these too?? */
   layout(location = 0) in vec4 position;
  
positive.code:     gl_Position = position;
  }")
  
  (defparameter *fragment-shader* "
  #version 330
  out vec4 outputColor;
  void main() {
  
negative.code: 		   (%gl:enable-vertex-attrib-array 0) 
  		   (%gl:vertex-attrib-pointer 0 4 :float :false 0 0)
  
  		   ;;now OpenGL knows where to get its vertex data; rendering 2 triangles (6 vertexes)
                     (%gl:draw-arrays :triangles 0 6)
  		   (sdl2:gl-swap-window win) ; this should have been implicit
  		   )
  	    (:quit () t)))))))
  