On Tuesday 13 June 2006 16:50, Brandon J. Van Every wrote:
> Matthew Welland wrote:
> > I'm trying to learn opengl and use chicken. This is proving to be a
> > non-trivial exercise :-)
> >
> > Does anyone have any working opengl code examples they can share? I am
> > specifically having trouble with tesselation of polygons but any and all
> > examples would be interesting.
>
> I do not.  However, 1 month from now, it is my ambition to begin work on
> a "proper" OpenGL binding for Chicken Scheme, as well as examples of
> procedural content via hand-coded Scheme.  This is my opening salvo for
> taking over the game industry.  Additionally, the demos will be used for
> promoting LispSea, the currently forming Seattle Lisp chapter.
> http://wiki.alu.org/LispSea for those interested.  The principal
> organizer is a Common Lisp pundit, but he currently recognizes that Lisp
> is weak in Seattle and he needs to cast the net wider to include
> Scheme.  My aim is to have Chicken Scheme be the best possible Scheme or
> Lisp solution for any Windows OpenGL game developer.

This sounds very very cool. I look forward to seeing it. Will your OpenGL 
binding be built on the existing one or will it start from scratch?

Attached is alpha.scm - a direct port to chicken of one of the examples that 
comes with the Ruby OpenGl port. I plan on working my way through the 
examples porting as many as I can in my effort to learn OpenGl. I'll keep 
them around in case they are of interest to others.

One suggestion for chicken eggs - I'd like to see examples installed along 
with the reference data where appropriate. Also, on completion of running 
chicken setup how about spitting out on-screen the URL or path to the 
installed docs. I had no idea that docs were being installed until I dug into 
the chicken install workings.

Lastly: The opengl egg doesn't install a help page.

Thank you to Felix and all who make Chicken possible!!

Matt
--

> I also plan to cooperate with Common Lisp developers when and if they
> get SBCL fully ported to Windows.  It's likely to happen as they already
> have a pre-release, but I won't hold my breath on how long it takes them
> to be ready for prime time.  I dumped Bigloo Scheme, went through a CL
> booster phase, then dumped that because there weren't any meaningful C
> FFI standards in the CL world, let alone any OpenGL standards.  Each CL
> implementation was "a right unto itself" and that's no different than
> the Scheme universe.  There were no compiled, standardized,
> well-supported open source CLs available on Windows last year.  GCL
> certainly didn't meet the bar of "well supported," for instance, and
> CLISP is well supported but not compiled.  Corman Lisp was available for
> $250, but I wasn't confident in its future and didn't feel like locking
> in.  So I landed on Chicken Scheme, trading some performance for a
> better license, a slightly bigger community, and some C++ support.  And
> also as it turns out, which I didn't expect, more control over its
> future.  In the sense of what platforms Chicken Scheme will ultimately
> build on, and be made available for.
>
> So, CL cooperation will probably mean getting them to bind OpenGL the
> same way, aggregating examples with documentation and treating them
> similarly, dealing with 3D file format imports similarly, and other
> meta-organizational issues.  But this is all contingent on CLers
> carrying their own ball.  I'm not going to do both, my priority is
> Chicken Scheme.  If Chicken Scheme ends up being a better real world
> game development solution than anything the CL community is willing to
> do, I have no problem with that at all.  I made my investment decision 9
> months ago when I started the CMake build.  It would take a large amount
> of $$$$$ for me to change my tune, and I don't see anyone beating down
> the doors of the game industry to use either CL or Scheme.  It's up to
> me to prove the business model, so I'll do it with my choice of tools.
>
> If anyone is interested in assisting with my goal, let me know.
> Otherwise, relax and bring some marshmellows.
>
>
> Cheers,
> Brandon Van Every
>
>
> _______________________________________________
> Chicken-users mailing list
> [email protected]
> http://lists.nongnu.org/mailman/listinfo/chicken-users

-- 
http://www.kiatoa.com, a self-governing site where *you* can be the boss!
  You make and choose the stories and the classifieds are always free.
     Also, many "best of" polls. Come join in the ballot stuffing!
;; /*
;; * Copyright (c) 1993-1997, Silicon Graphics, Inc.
;; * ALL RIGHTS RESERVED 
;; * Permission to use, copy, modify, and distribute this software for 
;; * any purpose and without fee is hereby granted, provided that the above
;; * copyright notice appear in all copies and that both the copyright notice
;; * and this permission notice appear in supporting documentation, and that 
;; * the name of Silicon Graphics, Inc. not be used in advertising
;; * or publicity pertaining to distribution of the software without specific,
;; * written prior permission. 
;; *
;; * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
;; * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
;; * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
;; * FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL SILICON
;; * GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
;; * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
;; * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
;; * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
;; * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC.  HAS BEEN
;; * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
;; * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
;; * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
;; * 
;; * US Government Users Restricted Rights 
;; * Use, duplication, or disclosure by the Government is subject to
;; * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
;; * (c)(1)(ii) of the Rights in Technical Data and Computer Software
;; * clause at DFARS 252.227-7013 and/or in similar or successor
;; * clauses in the FAR or the DOD or NASA FAR Supplement.
;; * Unpublished-- rights reserved under the copyright laws of the
;; * United States.  Contractor/manufacturer is Silicon Graphics,
;; * Inc., 2011 N.  Shoreline Blvd., Mountain View, CA 94039-7311.
;; *
;; * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
;; */
;; 
;; *
;; *  alpha.c
;; *  This program draws several overlapping filled polygons
;; *  to demonstrate the effect order has on alpha blending results.
;; *  Use the 't' key to toggle the order of drawing polygons.
;; */

(use srfi-1 utils gl glu glut srfi-4)

(define leftFirst gl:TRUE)
(define *args* (argv))

;; /*  Initialize alpha blending function.
;; */

(define (init)
   (gl:Enable gl:BLEND)
   (gl:BlendFunc gl:SRC_ALPHA gl:ONE_MINUS_SRC_ALPHA)
   (gl:ShadeModel gl:FLAT)
   (gl:ClearColor 0.0 0.0 0.0 0.0))

(define (drawLeftTriangle)
   ;; /* draw yellow triangle on LHS of screen */

  (gl:Begin gl:TRIANGLES)
  (gl:Color4f 1.0 1.0 0.0 0.75)
  (gl:Vertex3f 0.1 0.9 0.0)
  (gl:Vertex3f 0.1 0.1 0.0)
  (gl:Vertex3f 0.7 0.5 0.0) 
  (gl:End))

(define (drawRightTriangle)
   ;; /* draw cyan triangle on RHS of screen */

  (gl:Begin gl:TRIANGLES)
  (gl:Color4f 0.0 1.0 1.0 0.75)
  (gl:Vertex3f 0.9 0.9 0.0) 
  (gl:Vertex3f 0.3 0.5 0.0)
  (gl:Vertex3f 0.9 0.1 0.0) 
  (gl:End))

(define (display)
  (gl:Clear gl:COLOR_BUFFER_BIT)
  (if leftFirst
      (begin
        (drawLeftTriangle)
        (drawRightTriangle))
      (begin
        (drawRightTriangle)
        (drawLeftTriangle)))
  (gl:Flush))

(define (reshape w h)
   (gl:Viewport 0 0 w h)
   (gl:MatrixMode gl:PROJECTION)
   (gl:LoadIdentity)
   (if (<= w h) 
      (glu:Ortho2D 0.0 1.0 0.0 (* 1.0 (/ h w)))
      (glu:Ortho2D 0.0 (* 1.0 (/ w h)) 0.0 1.0)))

;; /* ARGSUSED1 */
(define (keyboard key x y)
  (case key
     ((#\t #\T)
      (set! leftFirst (not leftFirst))
      (glut:PostRedisplay))
     ((#\q)  ;; /*  Escape key  */ ** Changed to "q"
      (exit 0))))

;;  *  Open window with initial window size, title bar, 
;;  *  RGBA display mode, and handle input events.

;; (glut:Init)
(print "Use t to toggle drawing order of polygons and q to exit")
(glut:InitDisplayMode (+ glut:SINGLE glut:RGB))
(glut:InitWindowSize 200 200)
(glut:CreateWindow (list-ref *args* 1))
(init)
(glut:ReshapeFunc reshape)
(glut:KeyboardFunc keyboard)
(glut:DisplayFunc display)
(glut:MainLoop)
_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to