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