artoolkit-commits Mailing List for ARToolKit (Page 4)
Optical marker tracking and overlay for augmented reality.
Brought to you by:
philip_lamb
You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(65) |
Dec
(32) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
(5) |
Mar
(15) |
Apr
(22) |
May
|
Jun
(9) |
Jul
(108) |
Aug
(42) |
Sep
(62) |
Oct
(5) |
Nov
|
Dec
(4) |
2006 |
Jan
|
Feb
|
Mar
|
Apr
(38) |
May
(27) |
Jun
(58) |
Jul
(8) |
Aug
(11) |
Sep
(51) |
Oct
(15) |
Nov
(12) |
Dec
(3) |
2007 |
Jan
(25) |
Feb
(6) |
Mar
(8) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(13) |
Sep
(1) |
Oct
(1) |
Nov
(2) |
Dec
|
2008 |
Jan
(2) |
Feb
(3) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(20) |
Sep
(5) |
Oct
|
Nov
|
Dec
(2) |
2009 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: Philip L. <phi...@us...> - 2007-01-23 00:39:30
|
Update of /cvsroot/artoolkit/artoolkit/lib/SRC/VideoLinux1394Cam In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv30518/lib/SRC/VideoLinux1394Cam Modified Files: video.c Log Message: Update copyright date. Index: video.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/VideoLinux1394Cam/video.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** video.c 19 Sep 2006 03:13:10 -0000 1.14 --- video.c 23 Jan 2007 00:39:28 -0000 1.15 *************** *** 1,5 **** /* 1394 Linux Firewire Digital Camera Interface ! Copyright (C) 2002 - 2006 Kiyoshi Kiyokawa (ki...@cr...) Hirokazu Kato (ka...@sy...) --- 1,5 ---- /* 1394 Linux Firewire Digital Camera Interface ! Copyright (c) 2002-2007 Kiyoshi Kiyokawa (ki...@cr...) Hirokazu Kato (ka...@sy...) |
From: Philip L. <phi...@us...> - 2007-01-23 00:39:29
|
Update of /cvsroot/artoolkit/artoolkit/include/AR/sys In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv30518/include/AR/sys Modified Files: videoMacOSX.h videoWin32DirectShow.h Log Message: Update copyright date. Index: videoWin32DirectShow.h =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/include/AR/sys/videoWin32DirectShow.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** videoWin32DirectShow.h 24 May 2006 03:33:39 -0000 1.4 --- videoWin32DirectShow.h 23 Jan 2007 00:39:27 -0000 1.5 *************** *** 29,33 **** * ========================================================================*/ /* ! * Copyright (c) 2004-2006 Philip Lamb (PRL) ph...@ed.... All rights reserved. * * Rev Date Who Changes --- 29,33 ---- * ========================================================================*/ /* ! * Copyright (c) 2004-2007 Philip Lamb (PRL) ph...@ed.... All rights reserved. * * Rev Date Who Changes Index: videoMacOSX.h =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/include/AR/sys/videoMacOSX.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** videoMacOSX.h 22 May 2006 22:17:40 -0000 1.7 --- videoMacOSX.h 23 Jan 2007 00:39:27 -0000 1.8 *************** *** 8,12 **** */ /* ! * Copyright (c) 2003-2006 Philip Lamb (PRL) ph...@ed.... All rights reserved. * * Rev Date Who Changes --- 8,12 ---- */ /* ! * Copyright (c) 2003-2007 Philip Lamb (PRL) ph...@ed.... All rights reserved. * * Rev Date Who Changes |
From: Philip L. <phi...@us...> - 2007-01-23 00:39:29
|
Update of /cvsroot/artoolkit/artoolkit/lib/SRC/VideoGStreamer In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv30518/lib/SRC/VideoGStreamer Modified Files: video.c Log Message: Update copyright date. Index: video.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/VideoGStreamer/video.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** video.c 19 Sep 2006 03:12:54 -0000 1.7 --- video.c 23 Jan 2007 00:39:27 -0000 1.8 *************** *** 2,6 **** * Video capture module utilising the GStreamer pipeline for AR Toolkit * ! * (c) Copyrights 2003-2006 Hartmut Seichter * * licensed under the terms of the GPL v2.0 --- 2,6 ---- * Video capture module utilising the GStreamer pipeline for AR Toolkit * ! * (c) Copyrights 2003-2007 Hartmut Seichter * * licensed under the terms of the GPL v2.0 |
From: Philip L. <phi...@us...> - 2007-01-23 00:39:29
|
Update of /cvsroot/artoolkit/artoolkit/lib/SRC/Gl In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv30518/lib/SRC/Gl Modified Files: gsub_lite.c Log Message: Update copyright date. Index: gsub_lite.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/Gl/gsub_lite.c,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** gsub_lite.c 18 Jan 2007 22:50:28 -0000 1.23 --- gsub_lite.c 23 Jan 2007 00:39:27 -0000 1.24 *************** *** 4,8 **** * Graphics Subroutines (Lite) for ARToolKit. * ! * Copyright (c) 2003-2006 Philip Lamb (PRL) ph...@ed.... All rights reserved. * * Rev Date Who Changes --- 4,8 ---- * Graphics Subroutines (Lite) for ARToolKit. * ! * Copyright (c) 2003-2007 Philip Lamb (PRL) ph...@ed.... All rights reserved. * * Rev Date Who Changes |
From: Philip L. <phi...@us...> - 2007-01-23 00:39:29
|
Update of /cvsroot/artoolkit/artoolkit/examples/simpleVRML In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv30518/examples/simpleVRML Modified Files: simpleVRML.c Log Message: Update copyright date. Index: simpleVRML.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/examples/simpleVRML/simpleVRML.c,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** simpleVRML.c 16 Jan 2007 21:08:23 -0000 1.17 --- simpleVRML.c 23 Jan 2007 00:39:27 -0000 1.18 *************** *** 8,12 **** * Copyright (c) 2002 Mark Billinghurst (MB) gr...@hi... * Copyright (c) 2004 Raphael Grasset (RG) rap...@hi.... ! * Copyright (c) 2004-2006 Philip Lamb (PRL) ph...@ed.... * * Rev Date Who Changes --- 8,12 ---- * Copyright (c) 2002 Mark Billinghurst (MB) gr...@hi... * Copyright (c) 2004 Raphael Grasset (RG) rap...@hi.... ! * Copyright (c) 2004-2007 Philip Lamb (PRL) ph...@ed.... * * Rev Date Who Changes |
From: Philip L. <phi...@us...> - 2007-01-23 00:39:28
|
Update of /cvsroot/artoolkit/artoolkit/examples/twoView In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv30518/examples/twoView Modified Files: twoView.c Log Message: Update copyright date. Index: twoView.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/examples/twoView/twoView.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** twoView.c 18 Jan 2007 22:51:48 -0000 1.18 --- twoView.c 23 Jan 2007 00:39:27 -0000 1.19 *************** *** 5,9 **** * Press '?' while running for help. * ! * Copyright (c) 2004-2006 Philip Lamb (PRL) ph...@ed.... All rights reserved. * * Rev Date Who Changes --- 5,9 ---- * Press '?' while running for help. * ! * Copyright (c) 2004-2007 Philip Lamb (PRL) ph...@ed.... All rights reserved. * * Rev Date Who Changes |
From: Philip L. <phi...@us...> - 2007-01-23 00:39:28
|
Update of /cvsroot/artoolkit/artoolkit/examples/simpleLite In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv30518/examples/simpleLite Modified Files: simpleLite.c Log Message: Update copyright date. Index: simpleLite.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/examples/simpleLite/simpleLite.c,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** simpleLite.c 18 Jan 2007 22:51:41 -0000 1.22 --- simpleLite.c 23 Jan 2007 00:39:27 -0000 1.23 *************** *** 8,12 **** * Press '?' while running for help on available key commands. * ! * Copyright (c) 2001-2006 Philip Lamb (PRL) ph...@ed.... All rights reserved. * * Rev Date Who Changes --- 8,12 ---- * Press '?' while running for help on available key commands. * ! * Copyright (c) 2001-2007 Philip Lamb (PRL) ph...@ed.... All rights reserved. * * Rev Date Who Changes |
From: Philip L. <phi...@us...> - 2007-01-23 00:39:28
|
Update of /cvsroot/artoolkit/artoolkit/doc/gsub_lite In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv30518/doc/gsub_lite Modified Files: gsub_lite.html Log Message: Update copyright date. Index: gsub_lite.html =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/doc/gsub_lite/gsub_lite.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** gsub_lite.html 22 May 2006 23:03:19 -0000 1.5 --- gsub_lite.html 23 Jan 2007 00:39:27 -0000 1.6 *************** *** 76,80 **** <br><br> ! <hr><br><center>© 2003-2006 Philip Lamb (Last Updated June 23, 2006) <br><font size="-1">HTML documentation generated by <a href="http://www.opensource.apple.com/projects" target="_blank">HeaderDoc</a></font> --- 76,80 ---- <br><br> ! <hr><br><center>© 2003-2007 Philip Lamb (Last Updated June 23, 2006) <br><font size="-1">HTML documentation generated by <a href="http://www.opensource.apple.com/projects" target="_blank">HeaderDoc</a></font> |
From: Philip L. <phi...@us...> - 2007-01-23 00:27:35
|
Update of /cvsroot/artoolkit/artoolkit/lib/SRC/VideoMacOSX In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv25152 Modified Files: video.c Log Message: Update docs for Mac video. Index: video.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/VideoMacOSX/video.c,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** video.c 18 Jan 2007 22:50:46 -0000 1.24 --- video.c 23 Jan 2007 00:27:34 -0000 1.25 *************** *** 1237,1242 **** printf(" Return images with pixels in format cccc, where cccc is either a\n"); printf(" numeric pixel format number or a valid 4-character-code for a\n"); ! printf(" pixel format. The following values are supported: \n"); ! printf(" 32, BGRA, RGBA, ABGR, 24, 24BG, 2vuy, yuvs.\n"); printf(" (See http://developer.apple.com/quicktime/icefloe/dispatch020.html.)\n"); printf(" -fliph\n"); --- 1237,1245 ---- printf(" Return images with pixels in format cccc, where cccc is either a\n"); printf(" numeric pixel format number or a valid 4-character-code for a\n"); ! printf(" pixel format.\n"); ! printf(" The following numeric values are supported: \n"); ! printf(" 24 (24-bit RGB), 32 (32-bit ARGB), 40 (8-bit grey)"); ! printf(" The following 4-character-codes are supported: \n"); ! printf(" BGRA, RGBA, ABGR, 24BG, 2vuy, yuvs.\n"); printf(" (See http://developer.apple.com/quicktime/icefloe/dispatch020.html.)\n"); printf(" -fliph\n"); |
From: Philip L. <phi...@us...> - 2007-01-23 00:27:30
|
Update of /cvsroot/artoolkit/artoolkit/doc/video In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv25136 Modified Files: index.html Log Message: Update docs for Mac video. Index: index.html =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/doc/video/index.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** index.html 28 Sep 2006 03:06:45 -0000 1.4 --- index.html 23 Jan 2007 00:27:26 -0000 1.5 *************** *** 1 **** ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>ARToolKit Video Library Configuration documentation</title> </head> <body> <h1>ARToolKit video configuration </h1> <p>When using ARToolKit to open a video stream, one of the following functions / code snippets is called:</p> <blockquote> <p><code>arVideoOpen(char *vconf);</code></p> </blockquote> <p>or</p> <blockquote> <p><code>AR2VideoParamT vid;<br> vid = ar2VideoOpen(char *vconf);</code></p> </blockquote> <p>These functions take a single parameter, vconf, which is a character string.</p> <p>This character string encapsulates operating-system dependent directions as to how to find, open and configure the video stream. In order to assist you in determining a set of parameters, the functions <code>arVideoDispOption();</code> or <code>ar2VideoDispOption();</code> are designed to output some help text. The text is reproduced here for your convenience.</p> <p>Select an operating system / driver for which you wish to view the help text</p> <ul> <li><a href="#VideoLinux1394Cam">VideoLinux1394Cam</a></li> <li><a href="#VideoGStreamer">VideoGStreamer</a></li> <li><a href="#VideoLinuxDVCam">VideoLinuxDVCam</a></li> <li><a href="#VideoLinuxV4L">VideoLinuxV4L</a></li> <li><a href="#VideoMacOSX">VideoMacOSX</a></li> <li><a href="#VideoSGI">VideoSGI</a></li> <li><a href="#VideoWin32DirectShow">VideoWin32DirectShow</a> <ul> <li><a href="#VideoWin32DirectShow271">ARToolKit versions 2.71 and later</a></li> <li><a href="#VideoWin32DirectShow265">ARToolKit versions 2.65 to 2.70.1</a></li> </ul> </li> </ul> <p> </p> <a class="anchor" name="VideoLinux1394Cam"> <h2>VideoLinux1394Cam</h2> <pre> ARVideo may be configured using one or more of the following options, separated by a space: -node=N specifies detected node ID of a FireWire camera (-1: Any). -card=N specifies the FireWire adaptor id number (-1: Any). -mode=[320x240_YUV422|640x480_RGB|640x480_YUV411] specifies input image format. -rate=N specifies desired framerate of a FireWire camera. (1.875, 3.75, 7.5, 15, 30, 60) -[name]=N where name is brightness, iris, shutter, gain, saturation, gamma, sharpness (value must be a legal value for this parameter - use coriander to find what they are </pre> <a class="anchor" name="VideoGStreamer"> <h2>VideoGStreamer</h2> <p> ARVideo via <a href="http://www.gstreamer.org">GStreamer</a> may be configured using a configuration string following the <code>gst-launch</code> syntax. Some examples (using the ARTOOLKIT_CONFIG environment variable, bash syntax): </p> <ul> <li>Loading a file from disk: <pre> $> export ARTOOLKIT_CONFIG="filesrc location=gstreamer_test_xvid.avi ! decodebin ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink" </pre> <li>Using a webcam on /dev/video0 through Video4Linux v2 (V4L2): <pre>$> export ARTOOLKIT_CONFIG="v4l2src device=/dev/video1 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink" </pre> </li> The same strings can also directly been used within the code: <pre>arVideoOpen("videotestsrc ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink");</pre> </ul> <a class="anchor" name="VideoLinuxDV"> <h2>VideoLinuxDV </h2> <pre> ARVideo may be configured using one or more of the following options, separated by a space: -mode=[PAL|NTSC] specifies TV signal mode. </pre> <a class="anchor" name="VideoLinuxV4L"> <h2>VideoLinuxV4L </h2> <pre> ARVideo may be configured using one or more of the following options, separated by a space: DEVICE CONTROLS: -dev=filepath specifies device file. -channel=N specifies source channel. -noadjust prevent adjusting the width/height/channel if not suitable. -width=N specifies expected width of image. -height=N specifies expected height of image. -palette=[RGB|YUV420P] specifies the camera palette (WARNING:all are not supported on each camera !!). IMAGE CONTROLS (WARNING: every options are not supported by all camera !!): -brightness=N specifies brightness. (0.0 <-> 1.0) -contrast=N specifies contrast. (0.0 <-> 1.0) -saturation=N specifies saturation (color). (0.0 <-> 1.0) (for color camera only) -hue=N specifies hue. (0.0 <-> 1.0) (for color camera only) -whiteness=N specifies whiteness. (0.0 <-> 1.0) (REMARK: gamma for some drivers, otherwise for greyscale camera only) -color=N specifies saturation (color). (0.0 <-> 1.0) (REMARK: obsolete !! use saturation control) OPTION CONTROLS: -mode=[PAL|NTSC|SECAM] specifies TV signal mode (for tv/capture card). </pre> <a class="anchor" name="VideoMacOSX"> <h2>VideoMacOSX </h2> <pre> ARVideo may be configured using one or more of the following options, separated by a space: -nodialog Don't display video settings dialog. -width=w Scale camera native image to width w. -height=h Scale camera native image to height h. -fps Overlay camera frame counter on image. -grabber=n With multiple QuickTime video grabber components installed, use component n (default n=1). N.B. It is NOT necessary to use this option if you have installed more than one video input device (e.g. two cameras) as the default QuickTime grabber can manage multiple video channels. -pixelformat=cccc Return images with pixels in format cccc, where cccc is either a numeric pixel format number or a valid 4-character-code for a pixel format. The following values are supported: 32, BGRA, RGBA, ABGR, 24, 24BG, 2vuy, yuvs. (See http://developer.apple.com/quicktime/icefloe/dispatch020.html.) -fliph Flip camera image horizontally. (Added in ARToolKit v2.72.) -flipv Flip camera image vertically. (Added in ARToolKit v2.72.) </pre> <a class="anchor" name="VideoSGI"> <h2>VideoSGI </h2> <pre> ARVideo may be configured using one or more of the following options, separated by a space: -size=[FULL/HALF] specifies size of image. -device=N specifies device number. -bufsize=N specifies video buffer size. </pre> <a class="anchor" name="VideoWin32DirectShow"> <h2>VideoWin32DirectShow</h2> <a class="anchor" name="VideoWin32DirectShow271"> <h3>ARToolKit versions 2.71 and later </h3> <p>In ARToolKit 2.71 and later, the video configuration is specified in an XML file, conforming to the DSVideoLib XML Schema. This schema is documented in the file "DsVideoLib.xsd" inside the DSVL-0.0.8b package. You can use an <a href="http://www.w3.org/XML/Schema">XML Schema viewer</a> to view the schema file, and a text editor or XML editor to edit your own configuration file.</p> <p>The pathname of the configuration file is then specified in the video configuration string. </p> <blockquote><pre> parameter is a file name (e.g. 'config.XML') conforming to the DSVideoLib XML Schema (DsVideoLib.xsd). </pre></blockquote> <a class="anchor" name="VideoWin32DirectShow265"> <h3>ARToolKit versions 2.65 to 2.70.1</h3> <blockquote> <pre> parameter format is either NULL or a list of tokens, separated by commas "," BINARY TOKENS: -------------- flipH : flip image horizontally (WARNING: non-optimal performance) flipV : flip image vertically (WARNING: non-optimal performance) showDlg : displays either WDM capture filter's property page or MSDV decoder format dialog (depending on source media type). only applies to WDM_CAP, will be ignored for AVI_FILE loopAVI : continuously loops through an AVI file (applies only to AVI_FILE) noClock : does not use a Reference Clock to synchronize samples; use this flag for offline post-processing (applies only to AVI_FILE) renderSec : render secondary streams (applies only to AVI_FILE) An AVI file can contain an arbitrary number of multiplexed A/V substreams, usually there are at most 2 substreams (1st: video, 2nd: audio). the AVI_FILE input module will only try to render stream 0x00 (assuming that it's video) and ignore the remaning substreams. Use this flag to force IGraphBuilder->Render(IPin*) calls on substreams 1..n DO NOT SET this flag if your AVI file contains more than one video stream PARAMETRIZED TOKENS: -------------------- inputDevice=? : supported parameters: "WDM_CAP" (WDM_VIDEO_CAPTURE_FILTER) use the DirectShow WDM wrapper to obtain live video input from a streaming capture device such as a IEEE 1394 DV camera or USB webcam. OPTIONAL: set deviceName=? and/or ieee1394id=? for better control over the choice of suitable WDM drivers "AVI_FILE" (ASYNC_FILE_INPUT_FILTER) use an Asynchronous File Input Filter to read & decode AVI video data NOTE: be sure to specify the input file name by pointing fileName=? to a valid AVI file. EXAMPLE: "inputDevive=WDM_CAP", or "inputDevice=AVI_FILE" DEFAULT: "WDM_CAP" will be selected if you omit this token videoWidth=? : preferred video width, EXAMPLE: "videoWidth=720" only applies to WDM_CAP, will be ignored for AVI_FILE videoHeight=? : preferred video height, EXAMPLE: "videoHeight=576" only applies to WDM_CAP, will be ignored for AVI_FILE pixelFormat=? : internal pixel format (see PixelFormat.h for supported types) PERFORMANCE WARNING: Be sure to match your IDirect3DTexture/OpenGL texture formats to whatever you specify here, i.e. use PXtoOpenGL(format), PXtoD3D(format) for creating your textures! (see PixelFormat.h for details) EXAMPLE: "pixelFormat=PIXELFORMAT_RGB32" NOTE: if you omit the pixelFormat=? token, the global constant (default_PIXELFORMAT, usually PIXELFORMAT_RGB32) will be selected. friendlyName=? : only applies to WDM_CAP, will be IGNORED if "inputDevice=WDM_CAP" is not set. Used to select a preferred WDM device. WILL BE IGNORED IF deviceName=? IS SET."); (WARNING: WDM "friendly names" are locale-dependent), i.e. try to match substring <?> with the "friendly names" of enumerated DirectShow WDM wrappers (ksproxy.ax). EXAMPLE: "friendlyName=Microsoft DV Camera" for IEEE1394 DV devices "friendlyName=QuickCam" for Logitech QuickCam deviceName=? : only applies to WDM_CAP, will be IGNORED if "inputDevice=WDM_CAP" is not set. Used to select a preferred WDM device. WILL ALWAYS WILL OVERRIDE friendlyName=? i.e. try to match substring <?> with the "device names" of enumerated DirectShow WDM wrappers (ksproxy.ax). Device names look like: "@device:*:{860BB310-5D01-11d0-BD3B-00A0C911CE86} Use GraphEdit (part of the DirectX SDK, under \DXSDK\bin\DxUtils\graphedt.exe) to figure out your camera's device name. EXAMPLE: "deviceName=1394#unibrain&fire-i_1.2#4510000061431408 fileName=? : only applies to AVI_FILE, will be IGNORED if "inputDevice=AVI_FILE" is not set. input file name, if just use a file's name (without its full path), the WIN32 API fuction SearchPath() (Winbase.h) will be used to locate the file. EXAMPLE: "fileName=C:\Some Directory\Another Directory\Video.AVI" "fileName=video.AVI" (will succeed if C:\Some Directory\Another Directory\ is: * the application's startup directory * the current directory * listed in the PATH environment variable) ieee1394id=? : only applies to WDM_CAP, will be IGNORED if "inputDevice=WDM_CAP" is not set. Unique 64-bit device identifier, as defined by IEEE 1394. Hexadecimal value expected, i.e. "ieee1394id=437d3b0201460008" Use /bin/IEEE394_id.exe to determine your camera's ID. deinterlaceState=? : supported parameters (see VFX_STATE_names[]) "off" : disable deinterlacing (DEFAULT) "on" : force deinterlacing (even for progressive frames) "auto" : enable deinterlacing only if (VIDEOINFOHEADER.dwInterlaceFlags & AMINTERLACE_IsInterlaced) WARNING: EXPERIMENTAL FEATURE! deinterlaceMethod=? : deinterlacing method (see VFxDeinterlaceParam.h for supported modes) supported parameters (see DEINTERLACE_METHOD_names[]): "blend" : blend fields (best quality) "duplicate1" : duplicate first field "duplicate2" : duplicate second field NOTE: omitting this token results in default mode (DEINTERLACE_BLEND) being used. WARNING: EXPERIMENTAL FEATURE! EXAMPLES: arVideoOpen(NULL); arVideoOpen("inputDevice=WDM_CAP,showDlg"); arVideoOpen("inputDevice=WDM_CAP,flipH,flipV,showDlg"); arVideoOpen("inputDevice=WDM_CAP,pixelFormat=PIXELFORMAT_RGB24,showDlg"); arVideoOpen("inputDevice=WDM_CAP,showDlg,deinterlaceState=on,deinterlaceMethod=duplicate1"); arVideoOpen("inputDevice=WDM_CAP,videoWidth=640,flipH,videoHeight=480,showDlg,deinterlaceState=auto"); arVideoOpen("inputDevice=WDM_CAP,friendlyName=Microsoft DV Camera,videoWidth=720,videoHeight=480"); arVideoOpen("inputDevice=WDM_CAP,friendlyName=Logitech,videoWidth=320,videoHeight=240,flipV"); arVideoOpen("inputDevice=WDM_CAP,friendlyName=Microsoft DV Camera,ieee1394id=437d3b0201460008"); arVideoOpen("inputDevice=AVI_FILE,fileName=C:\Some Directory\Another Directory\Video.AVI"); arVideoOpen("inputDevice=AVI_FILE,fileName=Video.AVI,pixelFormat=PIXELFORMAT_RGB24"); </pre> </blockquote> </body> </html> \ No newline at end of file --- 1 ---- ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>ARToolKit Video Library Configuration documentation</title> </head> <body> <h1>ARToolKit video configuration </h1> <p>When using ARToolKit to open a video stream, one of the following functions / code snippets is called:</p> <blockquote> <p><code>arVideoOpen(char *vconf);</code></p> </blockquote> <p>or</p> <blockquote> <p><code>AR2VideoParamT vid;<br> vid = ar2VideoOpen(char *vconf);</code></p> </blockquote> <p>These functions take a single parameter, vconf, which is a character string.</p> <p>This character string encapsulates operating-system dependent directions as to how to find, open and configure the video stream. In order to assist you in determining a set of parameters, the functions <code>arVideoDispOption();</code> or <code>ar2VideoDispOption();</code> are designed to output some help text. The text is reproduced here for your convenience.</p> <p>Select an operating system / driver for which you wish to view the help text</p> <ul> <li><a href="#VideoLinux1394Cam">VideoLinux1394Cam</a></li> <li><a href="#VideoGStreamer">VideoGStreamer</a></li> <li><a href="#VideoLinuxDVCam">VideoLinuxDVCam</a></li> <li><a href="#VideoLinuxV4L">VideoLinuxV4L</a></li> <li><a href="#VideoMacOSX">VideoMacOSX</a></li> <li><a href="#VideoSGI">VideoSGI</a></li> <li><a href="#VideoWin32DirectShow">VideoWin32DirectShow</a> <ul> <li><a href="#VideoWin32DirectShow271">ARToolKit versions 2.71 and later</a></li> <li><a href="#VideoWin32DirectShow265">ARToolKit versions 2.65 to 2.70.1</a></li> </ul> </li> </ul> <p> </p> <a class="anchor" name="VideoLinux1394Cam"> <h2>VideoLinux1394Cam</h2> <pre> ARVideo may be configured using one or more of the following options, separated by a space: -node=N specifies detected node ID of a FireWire camera (-1: Any). -card=N specifies the FireWire adaptor id number (-1: Any). -mode=[320x240_YUV422|640x480_RGB|640x480_YUV411] specifies input image format. -rate=N specifies desired framerate of a FireWire camera. (1.875, 3.75, 7.5, 15, 30, 60) -[name]=N where name is brightness, iris, shutter, gain, saturation, gamma, sharpness (value must be a legal value for this parameter - use coriander to find what they are </pre> <a class="anchor" name="VideoGStreamer"> <h2>VideoGStreamer</h2> <p> ARVideo via <a href="http://www.gstreamer.org">GStreamer</a> may be configured using a configuration string following the <code>gst-launch</code> syntax. Some examples (using the ARTOOLKIT_CONFIG environment variable, bash syntax): </p> <ul> <li>Loading a file from disk: <pre> $> export ARTOOLKIT_CONFIG="filesrc location=gstreamer_test_xvid.avi ! decodebin ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink" </pre> <li>Using a webcam on /dev/video0 through Video4Linux v2 (V4L2): <pre>$> export ARTOOLKIT_CONFIG="v4l2src device=/dev/video1 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink" </pre> </li> The same strings can also directly been used within the code: <pre>arVideoOpen("videotestsrc ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink");</pre> </ul> <a class="anchor" name="VideoLinuxDV"> <h2>VideoLinuxDV </h2> <pre> ARVideo may be configured using one or more of the following options, separated by a space: -mode=[PAL|NTSC] specifies TV signal mode. </pre> <a class="anchor" name="VideoLinuxV4L"> <h2>VideoLinuxV4L </h2> <pre> ARVideo may be configured using one or more of the following options, separated by a space: DEVICE CONTROLS: -dev=filepath specifies device file. -channel=N specifies source channel. -noadjust prevent adjusting the width/height/channel if not suitable. -width=N specifies expected width of image. -height=N specifies expected height of image. -palette=[RGB|YUV420P] specifies the camera palette (WARNING:all are not supported on each camera !!). IMAGE CONTROLS (WARNING: every options are not supported by all camera !!): -brightness=N specifies brightness. (0.0 <-> 1.0) -contrast=N specifies contrast. (0.0 <-> 1.0) -saturation=N specifies saturation (color). (0.0 <-> 1.0) (for color camera only) -hue=N specifies hue. (0.0 <-> 1.0) (for color camera only) -whiteness=N specifies whiteness. (0.0 <-> 1.0) (REMARK: gamma for some drivers, otherwise for greyscale camera only) -color=N specifies saturation (color). (0.0 <-> 1.0) (REMARK: obsolete !! use saturation control) OPTION CONTROLS: -mode=[PAL|NTSC|SECAM] specifies TV signal mode (for tv/capture card). </pre> <a class="anchor" name="VideoMacOSX"> <h2>VideoMacOSX </h2> <pre> ARVideo may be configured using one or more of the following options, separated by a space: printf(" -pixelformat=cccc\n"); printf(" Return images with pixels in format cccc, where cccc is either a\n"); printf(" numeric pixel format number or a valid 4-character-code for a\n"); printf(" pixel format.\n"); printf(" The following numeric values are supported: \n"); printf(" 24 (24-bit RGB), 32 (32-bit ARGB), 40 (8-bit grey)"); printf(" The following 4-character-codes are supported: \n"); printf(" BGRA, RGBA, ABGR, 24BG, 2vuy, yuvs.\n"); printf(" (See http://developer.apple.com/quicktime/icefloe/dispatch020.html.)\n"); printf(" -fliph\n"); printf(" Flip camera image horizontally.\n"); printf(" -flipv\n"); printf(" Flip camera image vertically.\n"); printf(" -singlebuffer\n"); printf(" Use single buffering of captured video instead of triple-buffering.\n"); -nodialog Don't display video settings dialog. -width=w Scale camera native image to width w. -height=h Scale camera native image to height h. -fps Overlay camera frame counter on image. -grabber=n With multiple QuickTime video grabber components installed, use component n (default n=1). N.B. It is NOT necessary to use this option if you have installed more than one video input device (e.g. two cameras) as the default QuickTime grabber can manage multiple video channels. -pixelformat=cccc The following numeric values are supported: 24 (24-bit RGB), 32 (32-bit ARGB), 40 (8-bit grey) The following 4-character-codes are supported: BGRA, RGBA, ABGR, 24BG, 2vuy, yuvs. (See http://developer.apple.com/quicktime/icefloe/dispatch020.html.) -fliph Flip camera image horizontally. (Added in ARToolKit v2.72.) -flipv Flip camera image vertically. (Added in ARToolKit v2.72.) -singlebuffer Use single buffering of captured video instead of triple-buffering. (Added in ARToolKit v2.73.) </pre> <a class="anchor" name="VideoSGI"> <h2>VideoSGI </h2> <pre> ARVideo may be configured using one or more of the following options, separated by a space: -size=[FULL/HALF] specifies size of image. -device=N specifies device number. -bufsize=N specifies video buffer size. </pre> <a class="anchor" name="VideoWin32DirectShow"> <h2>VideoWin32DirectShow</h2> <a class="anchor" name="VideoWin32DirectShow271"> <h3>ARToolKit versions 2.71 and later </h3> <p>In ARToolKit 2.71 and later, the video configuration is specified in an XML file, conforming to the DSVideoLib XML Schema. This schema is documented in the file "DsVideoLib.xsd" inside the DSVL-0.0.8b package. You can use an <a href="http://www.w3.org/XML/Schema">XML Schema viewer</a> to view the schema file, and a text editor or XML editor to edit your own configuration file.</p> <p>The pathname of the configuration file is then specified in the video configuration string. </p> <blockquote><pre> parameter is a file name (e.g. 'config.XML') conforming to the DSVideoLib XML Schema (DsVideoLib.xsd). </pre></blockquote> <a class="anchor" name="VideoWin32DirectShow265"> <h3>ARToolKit versions 2.65 to 2.70.1</h3> <blockquote> <pre> parameter format is either NULL or a list of tokens, separated by commas "," BINARY TOKENS: -------------- flipH : flip image horizontally (WARNING: non-optimal performance) flipV : flip image vertically (WARNING: non-optimal performance) showDlg : displays either WDM capture filter's property page or MSDV decoder format dialog (depending on source media type). only applies to WDM_CAP, will be ignored for AVI_FILE loopAVI : continuously loops through an AVI file (applies only to AVI_FILE) noClock : does not use a Reference Clock to synchronize samples; use this flag for offline post-processing (applies only to AVI_FILE) renderSec : render secondary streams (applies only to AVI_FILE) An AVI file can contain an arbitrary number of multiplexed A/V substreams, usually there are at most 2 substreams (1st: video, 2nd: audio). the AVI_FILE input module will only try to render stream 0x00 (assuming that it's video) and ignore the remaning substreams. Use this flag to force IGraphBuilder->Render(IPin*) calls on substreams 1..n DO NOT SET this flag if your AVI file contains more than one video stream PARAMETRIZED TOKENS: -------------------- inputDevice=? : supported parameters: "WDM_CAP" (WDM_VIDEO_CAPTURE_FILTER) use the DirectShow WDM wrapper to obtain live video input from a streaming capture device such as a IEEE 1394 DV camera or USB webcam. OPTIONAL: set deviceName=? and/or ieee1394id=? for better control over the choice of suitable WDM drivers "AVI_FILE" (ASYNC_FILE_INPUT_FILTER) use an Asynchronous File Input Filter to read & decode AVI video data NOTE: be sure to specify the input file name by pointing fileName=? to a valid AVI file. EXAMPLE: "inputDevive=WDM_CAP", or "inputDevice=AVI_FILE" DEFAULT: "WDM_CAP" will be selected if you omit this token videoWidth=? : preferred video width, EXAMPLE: "videoWidth=720" only applies to WDM_CAP, will be ignored for AVI_FILE videoHeight=? : preferred video height, EXAMPLE: "videoHeight=576" only applies to WDM_CAP, will be ignored for AVI_FILE pixelFormat=? : internal pixel format (see PixelFormat.h for supported types) PERFORMANCE WARNING: Be sure to match your IDirect3DTexture/OpenGL texture formats to whatever you specify here, i.e. use PXtoOpenGL(format), PXtoD3D(format) for creating your textures! (see PixelFormat.h for details) EXAMPLE: "pixelFormat=PIXELFORMAT_RGB32" NOTE: if you omit the pixelFormat=? token, the global constant (default_PIXELFORMAT, usually PIXELFORMAT_RGB32) will be selected. friendlyName=? : only applies to WDM_CAP, will be IGNORED if "inputDevice=WDM_CAP" is not set. Used to select a preferred WDM device. WILL BE IGNORED IF deviceName=? IS SET."); (WARNING: WDM "friendly names" are locale-dependent), i.e. try to match substring <?> with the "friendly names" of enumerated DirectShow WDM wrappers (ksproxy.ax). EXAMPLE: "friendlyName=Microsoft DV Camera" for IEEE1394 DV devices "friendlyName=QuickCam" for Logitech QuickCam deviceName=? : only applies to WDM_CAP, will be IGNORED if "inputDevice=WDM_CAP" is not set. Used to select a preferred WDM device. WILL ALWAYS WILL OVERRIDE friendlyName=? i.e. try to match substring <?> with the "device names" of enumerated DirectShow WDM wrappers (ksproxy.ax). Device names look like: "@device:*:{860BB310-5D01-11d0-BD3B-00A0C911CE86} Use GraphEdit (part of the DirectX SDK, under \DXSDK\bin\DxUtils\graphedt.exe) to figure out your camera's device name. EXAMPLE: "deviceName=1394#unibrain&fire-i_1.2#4510000061431408 fileName=? : only applies to AVI_FILE, will be IGNORED if "inputDevice=AVI_FILE" is not set. input file name, if just use a file's name (without its full path), the WIN32 API fuction SearchPath() (Winbase.h) will be used to locate the file. EXAMPLE: "fileName=C:\Some Directory\Another Directory\Video.AVI" "fileName=video.AVI" (will succeed if C:\Some Directory\Another Directory\ is: * the application's startup directory * the current directory * listed in the PATH environment variable) ieee1394id=? : only applies to WDM_CAP, will be IGNORED if "inputDevice=WDM_CAP" is not set. Unique 64-bit device identifier, as defined by IEEE 1394. Hexadecimal value expected, i.e. "ieee1394id=437d3b0201460008" Use /bin/IEEE394_id.exe to determine your camera's ID. deinterlaceState=? : supported parameters (see VFX_STATE_names[]) "off" : disable deinterlacing (DEFAULT) "on" : force deinterlacing (even for progressive frames) "auto" : enable deinterlacing only if (VIDEOINFOHEADER.dwInterlaceFlags & AMINTERLACE_IsInterlaced) WARNING: EXPERIMENTAL FEATURE! deinterlaceMethod=? : deinterlacing method (see VFxDeinterlaceParam.h for supported modes) supported parameters (see DEINTERLACE_METHOD_names[]): "blend" : blend fields (best quality) "duplicate1" : duplicate first field "duplicate2" : duplicate second field NOTE: omitting this token results in default mode (DEINTERLACE_BLEND) being used. WARNING: EXPERIMENTAL FEATURE! EXAMPLES: arVideoOpen(NULL); arVideoOpen("inputDevice=WDM_CAP,showDlg"); arVideoOpen("inputDevice=WDM_CAP,flipH,flipV,showDlg"); arVideoOpen("inputDevice=WDM_CAP,pixelFormat=PIXELFORMAT_RGB24,showDlg"); arVideoOpen("inputDevice=WDM_CAP,showDlg,deinterlaceState=on,deinterlaceMethod=duplicate1"); arVideoOpen("inputDevice=WDM_CAP,videoWidth=640,flipH,videoHeight=480,showDlg,deinterlaceState=auto"); arVideoOpen("inputDevice=WDM_CAP,friendlyName=Microsoft DV Camera,videoWidth=720,videoHeight=480"); arVideoOpen("inputDevice=WDM_CAP,friendlyName=Logitech,videoWidth=320,videoHeight=240,flipV"); arVideoOpen("inputDevice=WDM_CAP,friendlyName=Microsoft DV Camera,ieee1394id=437d3b0201460008"); arVideoOpen("inputDevice=AVI_FILE,fileName=C:\Some Directory\Another Directory\Video.AVI"); arVideoOpen("inputDevice=AVI_FILE,fileName=Video.AVI,pixelFormat=PIXELFORMAT_RGB24"); </pre> </blockquote> </body> </html> \ No newline at end of file |
From: Philip L. <phi...@us...> - 2007-01-18 22:51:49
|
Update of /cvsroot/artoolkit/artoolkit/examples/twoView In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv10251 Modified Files: twoView.c Log Message: Test and clean up twoView. Index: twoView.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/examples/twoView/twoView.c,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** twoView.c 17 Nov 2006 03:35:37 -0000 1.17 --- twoView.c 18 Jan 2007 22:51:48 -0000 1.18 *************** *** 233,238 **** static int setupMarker(const char *patt_name, int *patt_id) { ! ! if((*patt_id = arLoadPatt(patt_name)) < 0) { fprintf(stderr, "setupMarker(): pattern load error !!\n"); return (FALSE); --- 233,238 ---- static int setupMarker(const char *patt_name, int *patt_id) { ! // Loading only 1 pattern in this example. ! if ((*patt_id = arLoadPatt(patt_name)) < 0) { fprintf(stderr, "setupMarker(): pattern load error !!\n"); return (FALSE); *************** *** 278,300 **** } #ifdef APPLE_TEXTURE_FAST_TRANSFER - # ifdef GL_APPLE_client_storage fprintf(stderr, "arglAppleClientStorage is %d.\n", arglAppleClientStorage); - # endif // GL_APPLE_client_storage - # ifdef GL_APPLE_texture_range fprintf(stderr, "arglAppleTextureRange is %d.\n", arglAppleTextureRange); - fprintf(stderr, "arglAppleTextureRangeStorageHint is "); - switch (arglAppleTextureRangeStorageHint) { - case GL_STORAGE_SHARED_APPLE: - fprintf(stderr, "GL_STORAGE_SHARED_APPLE.\n"); - break; - case GL_STORAGE_CACHED_APPLE: - fprintf(stderr, "GL_STORAGE_CACHED_APPLE.\n"); - break; - default: - case GL_STORAGE_PRIVATE_APPLE: - fprintf(stderr, "GL_STORAGE_PRIVATE_APPLE.\n"); - break; - } - # endif // GL_APPLE_texture_range #endif // APPLE_TEXTURE_FAST_TRANSFER } --- 278,283 ---- *************** *** 406,410 **** if ((image = ar2VideoGetImage(gContextsActive[i].ARTVideo)) != NULL) { gContextsActive[i].ARTImage = image; // Save the fetched image. - gContextsActive[i].patt_found = FALSE; // Invalidate any previous detected markers. gContextsActive[i].callCountMarkerDetect++; // Increment ARToolKit FPS counter. --- 389,392 ---- *************** *** 422,426 **** if (marker_info[j].id == gPatt_id) { if (k == -1) k = j; // First marker detected. ! else if(marker_info[j].cf > marker_info[k].cf) k = j; // Higher confidence marker detected. } } --- 404,408 ---- if (marker_info[j].id == gPatt_id) { if (k == -1) k = j; // First marker detected. ! else if (marker_info[j].cf > marker_info[k].cf) k = j; // Higher confidence marker detected. } } *************** *** 430,433 **** --- 412,417 ---- arGetTransMat(&(marker_info[k]), gPatt_centre, gPatt_width, gContextsActive[i].patt_trans); gContextsActive[i].patt_found = TRUE; + } else { + gContextsActive[i].patt_found = FALSE; } *************** *** 487,510 **** gContextsActive[drawContextIndex].ARTImage = NULL; // Image data is no longer valid after calling ar2VideoCapNext(). if (gContextsActive[drawContextIndex].patt_found) { ! // Projection transformation. ! arglCameraFrustumRH(&(gContextsActive[drawContextIndex].ARTCparam), VIEW_DISTANCE_MIN, VIEW_DISTANCE_MAX, p); ! glMatrixMode(GL_PROJECTION); ! glLoadMatrixd(p); ! glMatrixMode(GL_MODELVIEW); ! ! // Viewing transformation. ! glLoadIdentity(); ! // Lighting and geometry that moves with the camera should go here. ! // (I.e. must be specified before viewing transformations.) ! //none ! ! // ARToolKit supplied distance in millimetres, but I want OpenGL to work in my units. arglCameraViewRH(gContextsActive[drawContextIndex].patt_trans, m, VIEW_SCALEFACTOR); glLoadMatrixd(m); ! // All other lighting and geometry goes here. DrawCube(drawContextIndex); } // patt_found --- 471,496 ---- gContextsActive[drawContextIndex].ARTImage = NULL; // Image data is no longer valid after calling ar2VideoCapNext(). + // Projection transformation. + arglCameraFrustumRH(&(gContextsActive[drawContextIndex].ARTCparam), VIEW_DISTANCE_MIN, VIEW_DISTANCE_MAX, p); + glMatrixMode(GL_PROJECTION); + glLoadMatrixd(p); + glMatrixMode(GL_MODELVIEW); + + // Viewing transformation. + glLoadIdentity(); + // Lighting and geometry that moves with the camera should go here. + // (I.e. must be specified before viewing transformations.) + //none + if (gContextsActive[drawContextIndex].patt_found) { ! // Calculate the camera position relative to the marker. ! // Replace VIEW_SCALEFACTOR with 1.0 to make one drawing unit equal to 1.0 ARToolKit units (usually millimeters). arglCameraViewRH(gContextsActive[drawContextIndex].patt_trans, m, VIEW_SCALEFACTOR); glLoadMatrixd(m); ! // All lighting and geometry to be drawn relative to the marker goes here. DrawCube(drawContextIndex); + } // patt_found *************** *** 589,597 **** } gContextsActiveCount = CONTEXTSACTIVECOUNT; ! for (i = 0; i < gContextsActiveCount; i++) if (!setupMarker(patt_name, &gPatt_id)) { ! fprintf(stderr, "main(): Unable to set up AR marker.\n"); ! exit(-1); ! } ! // ---------------------------------------------------------------------------- // Library setup. --- 575,579 ---- } gContextsActiveCount = CONTEXTSACTIVECOUNT; ! // ---------------------------------------------------------------------------- // Library setup. *************** *** 625,628 **** --- 607,615 ---- } arUtilTimerReset(); + + if (!setupMarker(patt_name, &gPatt_id)) { + fprintf(stderr, "main(): Unable to set up AR marker in context %d.\n", i); + exit(-1); + } // Register GLUT event-handling callbacks. |
From: Philip L. <phi...@us...> - 2007-01-18 22:51:42
|
Update of /cvsroot/artoolkit/artoolkit/examples/simpleLite In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv10233 Modified Files: simpleLite.c Log Message: Test and clean up twoView. Index: simpleLite.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/examples/simpleLite/simpleLite.c,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** simpleLite.c 16 Jan 2007 21:08:07 -0000 1.21 --- simpleLite.c 18 Jan 2007 22:51:41 -0000 1.22 *************** *** 187,191 **** { // Loading only 1 pattern in this example. ! if((*patt_id = arLoadPatt(patt_name)) < 0) { fprintf(stderr, "setupMarker(): pattern load error !!\n"); return (FALSE); --- 187,191 ---- { // Loading only 1 pattern in this example. ! if ((*patt_id = arLoadPatt(patt_name)) < 0) { fprintf(stderr, "setupMarker(): pattern load error !!\n"); return (FALSE); |
From: Philip L. <phi...@us...> - 2007-01-18 22:50:53
|
Update of /cvsroot/artoolkit/artoolkit/lib/SRC/VideoMacOSX In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv9843 Modified Files: video.c Log Message: Optimise Mac video handling in ARvideo and ARgsub_lite. Index: video.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/VideoMacOSX/video.c,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** video.c 3 Oct 2006 21:35:52 -0000 1.23 --- video.c 18 Jan 2007 22:50:46 -0000 1.24 *************** *** 1037,1040 **** --- 1037,1041 ---- } #endif // AR_VIDEO_DEBUG_FIX_DUAL_PROCESSOR_RACE + #ifdef AR_VIDEO_SUPPORT_OLD_QUICKTIME // Get a lock to access QuickTime (for SGIdle()), but only if more than one thread is running. *************** *** 1057,1064 **** // from the VDig. fprintf(stderr, "vdgIdle err=%ld.\n", err); - // ... to fix this we could simply call SGStop and SGStartRecord again - // calling stop allows the SG to release and re-prepare for grabbing - // hopefully fixing any problems, this is obviously a very relaxed - // approach. keepAlive = 0; break; --- 1058,1061 ---- *************** *** 1130,1137 **** //vid->lastTime = time; } ! // Mark status to indicate we have a frame available. vid->status |= AR_VIDEO_STATUS_BIT_READY; } #ifndef AR_VIDEO_DEBUG_FIX_DUAL_PROCESSOR_RACE err_i = pthread_cond_timedwait(&(vid->condition), &(vid->bufMutex), &ts); --- 1127,1143 ---- //vid->lastTime = time; } ! // Now copy the frame (if double-buffering). ! if (vid->bufCopyFlag) { ! if (vid->status & AR_VIDEO_STATUS_BIT_BUFFER) { ! memcpy((void *)(vid->bufPixelsCopy2), (void *)(vid->bufPixels), vid->bufSize); ! } else { ! memcpy((void *)(vid->bufPixelsCopy1), (void *)(vid->bufPixels), vid->bufSize); ! } ! } // Mark status to indicate we have a frame available. vid->status |= AR_VIDEO_STATUS_BIT_READY; } + + // All done. Wewease Wodger! #ifndef AR_VIDEO_DEBUG_FIX_DUAL_PROCESSOR_RACE err_i = pthread_cond_timedwait(&(vid->condition), &(vid->bufMutex), &ts); *************** *** 1238,1241 **** --- 1244,1249 ---- printf(" -flipv\n"); printf(" Flip camera image vertically.\n"); + printf(" -singlebuffer\n"); + printf(" Use single buffering of captured video instead of triple-buffering.\n"); printf("\n"); *************** *** 1246,1250 **** AR2VideoParamT *ar2VideoOpen(char *config_in) { - static int initF = 0; long qtVersion = 0L; int width = 0; --- 1254,1257 ---- *************** *** 1254,1257 **** --- 1261,1265 ---- int showDialog = 1; int standardDialog = 0; + int singleBuffer = 0; int flipH = 0, flipV = 0; OSErr err_s = noErr; *************** *** 1265,1270 **** OSType pixFormat = (OSType)0; long bytesPerPixel; - CGrafPtr theSavedPort; - GDHandle theSavedDevice; long cpuType; --- 1273,1276 ---- *************** *** 1275,1286 **** if (envconf && envconf[0]) { config = envconf; ! printf ("Using config string from environment [%s].\n", envconf); } else { config = NULL; ! printf ("No video config string supplied, using defaults.\n"); } } else { config = config_in; ! printf ("Using supplied video config string [%s].\n", config_in); } --- 1281,1292 ---- if (envconf && envconf[0]) { config = envconf; ! printf ("Using video config from environment \"%s\".\n", envconf); } else { config = NULL; ! printf ("Using default video config.\n"); } } else { config = config_in; ! printf ("Using supplied video config \"%s\".\n", config_in); } *************** *** 1319,1322 **** --- 1325,1330 ---- } else if (strncmp(a, "-flipv", 6) == 0) { flipV = 1; + } else if (strncmp(a, "-singlebuffer", 13) == 0) { + singleBuffer = 1; } else { err_i = 1; *************** *** 1380,1389 **** } - // Once only, initialize for Carbon. - if (initF == 0) { - InitCursor(); - initF = 1; - } - // If there are no active grabbers, init QuickTime. if (gVidCount == 0) { --- 1388,1391 ---- *************** *** 1444,1447 **** --- 1446,1450 ---- //vid->timeScale = 0; vid->grabber = grabber; + vid->bufCopyFlag = !singleBuffer; // Find out if we are running on an Intel Mac. *************** *** 1451,1457 **** } if (cpuType == gestaltCPUPentium) { ! // We are running on an Intel-based Mac. ! vid->bufCopyFlag = 0; //Hack: don't do buffercopy on Intel Macs. ! printf("Detected Intel CPU.\n"); } else { int native = is_pid_native(0); --- 1454,1459 ---- } if (cpuType == gestaltCPUPentium) { ! // We are running native on an Intel-based Mac. ! //printf("Detected Intel CPU.\n"); } else { int native = is_pid_native(0); *************** *** 1459,1467 **** if (native == 0) { // We're running under Rosetta. - vid->bufCopyFlag = 0; printf("Detected Intel CPU, but running PowerPC code under Rosetta.\n"); } else { ! // Error if < 0, or native if 1. ! vid->bufCopyFlag = 1; } } --- 1461,1469 ---- if (native == 0) { // We're running under Rosetta. printf("Detected Intel CPU, but running PowerPC code under Rosetta.\n"); + } else if (native == 1) { + //printf("Detected PowerPC CPU.\n"); } else { ! // Error. } } *************** *** 1590,1594 **** // we can't decompress into an unlocked PixMap, // and open the default sequence grabber. - // TODO: Allow user to configure sequence grabber. err_i = (int)LockPixels(GetGWorldPixMap(vid->pGWorld)); if (!err_i) { --- 1592,1595 ---- *************** *** 1598,1608 **** // Erase to black. ! #if 0 QDBeginCGContext(vid->pGWorld, &ctx); ! CGContextSetRGBFillColor(ctx, 1, 1, 1, 1); CGContextFillRect(ctx, CGRectMake(0, 0, (vid->theRect).left - (vid->theRect).right, (vid->theRect).top - (vid->theRect).bottom)); CGContextFlush(ctx); QDEndCGContext (vid->pGWorld, &ctx); #else GetGWorld(&theSavedPort, &theSavedDevice); SetGWorld(vid->pGWorld, NULL); --- 1599,1612 ---- // Erase to black. ! #if 1 ! CGContextRef ctx; QDBeginCGContext(vid->pGWorld, &ctx); ! CGContextSetRGBFillColor(ctx, 0, 0, 0, 1); CGContextFillRect(ctx, CGRectMake(0, 0, (vid->theRect).left - (vid->theRect).right, (vid->theRect).top - (vid->theRect).bottom)); CGContextFlush(ctx); QDEndCGContext (vid->pGWorld, &ctx); #else + CGrafPtr theSavedPort; + GDHandle theSavedDevice; GetGWorld(&theSavedPort, &theSavedDevice); SetGWorld(vid->pGWorld, NULL); *************** *** 1908,1917 **** if (vid->status & AR_VIDEO_STATUS_BIT_READY) { - // Need lock to guarantee this thread exclusive access to vid. - if (!ar2VideoInternalLock(&(vid->bufMutex))) { - fprintf(stderr, "ar2VideoGetImage(): Unable to lock mutex.\n"); - return (NULL); - } - //fprintf(stderr, "For vid @ %p got frame %ld.\n", vid, vid->frameCount); --- 1912,1915 ---- *************** *** 1925,1928 **** --- 1923,1931 ---- // various bits of the toolkit to cope. if (vid->bufCopyFlag) { + // Need lock to guarantee this thread exclusive access to vid. + if (!ar2VideoInternalLock(&(vid->bufMutex))) { + fprintf(stderr, "ar2VideoGetImage(): Unable to lock mutex.\n"); + return (NULL); + } if (vid->status & AR_VIDEO_STATUS_BIT_BUFFER) { memcpy((void *)(vid->bufPixelsCopy2), (void *)(vid->bufPixels), vid->bufSize); *************** *** 1934,1937 **** --- 1937,1944 ---- vid->status |= AR_VIDEO_STATUS_BIT_BUFFER; // Set buffer bit. } + if (!ar2VideoInternalUnlock(&(vid->bufMutex))) { + fprintf(stderr, "ar2VideoGetImage(): Unable to unlock mutex.\n"); + return (NULL); + } } else { pix = vid->bufPixels; *************** *** 1940,1947 **** vid->status &= ~AR_VIDEO_STATUS_BIT_READY; // Clear ready bit. - if (!ar2VideoInternalUnlock(&(vid->bufMutex))) { - fprintf(stderr, "ar2VideoGetImage(): Unable to unlock mutex.\n"); - return (NULL); - } } --- 1947,1950 ---- |
From: Philip L. <phi...@us...> - 2007-01-18 22:50:40
|
Update of /cvsroot/artoolkit/artoolkit/include/AR In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv9825 Modified Files: gsub_lite.h Log Message: Optimise Mac video handling in ARvideo and ARgsub_lite. Index: gsub_lite.h =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/include/AR/gsub_lite.h,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** gsub_lite.h 17 Nov 2006 03:22:23 -0000 1.15 --- gsub_lite.h 18 Jan 2007 22:50:39 -0000 1.16 *************** *** 178,186 **** // ============================================================================ ! #if defined(__APPLE__) && defined(APPLE_TEXTURE_FAST_TRANSFER) extern int arglAppleClientStorage; extern int arglAppleTextureRange; ! extern GLuint arglAppleTextureRangeStorageHint; ! #endif // __APPLE__ && APPLE_TEXTURE_FAST_TRANSFER // ============================================================================ --- 178,185 ---- // ============================================================================ ! #if defined(__APPLE__) extern int arglAppleClientStorage; extern int arglAppleTextureRange; ! #endif // __APPLE__ // ============================================================================ |
From: Philip L. <phi...@us...> - 2007-01-18 22:50:31
|
Update of /cvsroot/artoolkit/artoolkit/lib/SRC/Gl In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv9787 Modified Files: gsub_lite.c Log Message: Optimise Mac video handling in ARvideo and ARgsub_lite. Index: gsub_lite.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/Gl/gsub_lite.c,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** gsub_lite.c 17 Nov 2006 03:34:42 -0000 1.22 --- gsub_lite.c 18 Jan 2007 22:50:28 -0000 1.23 *************** *** 152,168 **** // ============================================================================ - // It'd be nice if we could wrap these in accessor functions! // These items relate to Apple's fast texture transfer support. ! //#define ARGL_USE_TEXTURE_RANGE // Commented out due to conflicts with GL_APPLE_ycbcr_422 extension. ! #if defined(__APPLE__) && defined(APPLE_TEXTURE_FAST_TRANSFER) ! int arglAppleClientStorage = TRUE; // TRUE | FALSE . ! # ifdef ARGL_USE_TEXTURE_RANGE ! int arglAppleTextureRange = TRUE; // TRUE | FALSE . ! GLuint arglAppleTextureRangeStorageHint = GL_STORAGE_SHARED_APPLE; // GL_STORAGE_PRIVATE_APPLE | GL_STORAGE_SHARED_APPLE | GL_STORAGE_CACHED_APPLE . # else ! int arglAppleTextureRange = FALSE; // TRUE | FALSE . ! GLuint arglAppleTextureRangeStorageHint = GL_STORAGE_PRIVATE_APPLE; // GL_STORAGE_PRIVATE_APPLE | GL_STORAGE_SHARED_APPLE | GL_STORAGE_CACHED_APPLE . ! # endif // ARGL_USE_TEXTURE_RANGE ! #endif // __APPLE__ && APPLE_TEXTURE_FAST_TRANSFER // ============================================================================ --- 152,165 ---- // ============================================================================ // These items relate to Apple's fast texture transfer support. ! #ifdef __APPLE__ ! # ifdef APPLE_TEXTURE_FAST_TRANSFER ! int arglAppleClientStorage = TRUE; ! int arglAppleTextureRange = TRUE; # else ! int arglAppleClientStorage = FALSE; ! int arglAppleTextureRange = FALSE; ! # endif // APPLE_TEXTURE_FAST_TRANSFER ! #endif // __APPLE__ // ============================================================================ *************** *** 269,280 **** // Now check that the renderer can accomodate a texture of this size. - #ifdef APPLE_TEXTURE_FAST_TRANSFER - // Can't use client storage or texture range. - # ifdef ARGL_USE_TEXTURE_RANGE - glTextureRangeAPPLE(GL_TEXTURE_2D, 0, NULL); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); - # endif // ARGL_USE_TEXTURE_RANGE - glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, FALSE); - #endif // APPLE_TEXTURE_FAST_TRANSFER glTexImage2D(GL_PROXY_TEXTURE_2D, 0, contextSettings->pixIntFormat, contextSettings->texturePow2SizeX, contextSettings->texturePow2SizeY, 0, contextSettings->pixFormat, contextSettings->pixType, NULL); glGetTexLevelParameteriv(GL_PROXY_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format); --- 266,269 ---- *************** *** 343,351 **** #ifdef APPLE_TEXTURE_FAST_TRANSFER - # ifdef ARGL_USE_TEXTURE_RANGE // Can't use client storage or texture range. glTextureRangeAPPLE(GL_TEXTURE_2D, 0, NULL); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); - # endif // ARGL_USE_TEXTURE_RANGE glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, FALSE); #endif // APPLE_TEXTURE_FAST_TRANSFER --- 332,338 ---- *************** *** 435,443 **** glBindTexture(GL_TEXTURE_2D, contextSettings->texturePow2); #ifdef APPLE_TEXTURE_FAST_TRANSFER - # ifdef ARGL_USE_TEXTURE_RANGE // Can't use client storage or texture range. glTextureRangeAPPLE(GL_TEXTURE_2D, 0, NULL); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); - #endif // ARGL_USE_TEXTURE_RANGE glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, FALSE); #endif // APPLE_TEXTURE_FAST_TRANSFER --- 422,428 ---- *************** *** 534,546 **** #ifdef APPLE_TEXTURE_FAST_TRANSFER - # ifdef ARGL_USE_TEXTURE_RANGE if (arglAppleTextureRange) { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, cparam->xsize * cparam->ysize * contextSettings->pixSize, image); ! glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, arglAppleTextureRangeStorageHint); } else { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, 0, NULL); glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); } - #endif // ARGL_USE_TEXTURE_RANGE glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, arglAppleClientStorage); #endif // APPLE_TEXTURE_FAST_TRANSFER --- 519,529 ---- #ifdef APPLE_TEXTURE_FAST_TRANSFER if (arglAppleTextureRange) { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, cparam->xsize * cparam->ysize * contextSettings->pixSize, image); ! glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_SHARED_APPLE); } else { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, 0, NULL); glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); } glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, arglAppleClientStorage); #endif // APPLE_TEXTURE_FAST_TRANSFER *************** *** 610,622 **** glBindTexture(GL_TEXTURE_RECTANGLE, contextSettings->textureRectangle); #ifdef APPLE_TEXTURE_FAST_TRANSFER - # ifdef ARGL_USE_TEXTURE_RANGE if (arglAppleTextureRange) { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, cparam->xsize * cparam->ysize * contextSettings->pixSize, image); ! glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, arglAppleTextureRangeStorageHint); } else { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, 0, NULL); glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); } - #endif // ARGL_USE_TEXTURE_RANGE glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, arglAppleClientStorage); #endif // APPLE_TEXTURE_FAST_TRANSFER --- 593,603 ---- glBindTexture(GL_TEXTURE_RECTANGLE, contextSettings->textureRectangle); #ifdef APPLE_TEXTURE_FAST_TRANSFER if (arglAppleTextureRange) { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, cparam->xsize * cparam->ysize * contextSettings->pixSize, image); ! glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_SHARED_APPLE); } else { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, 0, NULL); glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); } glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, arglAppleClientStorage); #endif // APPLE_TEXTURE_FAST_TRANSFER |
From: Philip L. <phi...@us...> - 2007-01-16 21:08:27
|
Update of /cvsroot/artoolkit/artoolkit/examples/simpleVRML In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv32187 Modified Files: simpleVRML.c Log Message: Small cleanup of example code, plus temp. fix for problem with bud_B vrml. Index: simpleVRML.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/examples/simpleVRML/simpleVRML.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** simpleVRML.c 4 Oct 2006 03:44:31 -0000 1.16 --- simpleVRML.c 16 Jan 2007 21:08:23 -0000 1.17 *************** *** 67,75 **** // ============================================================================ ! #define VIEW_SCALEFACTOR 0.025 // 1.0 ARToolKit unit becomes 0.025 of my OpenGL units. ! #define VIEW_SCALEFACTOR_1 1.0 // 1.0 ARToolKit unit becomes 1.0 of my OpenGL units. ! #define VIEW_SCALEFACTOR_4 4.0 // 1.0 ARToolKit unit becomes 4.0 of my OpenGL units. ! #define VIEW_DISTANCE_MIN 4.0 // Objects closer to the camera than this will not be displayed. ! #define VIEW_DISTANCE_MAX 4000.0 // Objects further away from the camera than this will not be displayed. --- 67,73 ---- // ============================================================================ ! #define VIEW_SCALEFACTOR 1.0 // 1.0 ARToolKit unit becomes 1.0 of my OpenGL units. ! #define VIEW_DISTANCE_MIN 10.0 // Objects closer to the camera than this will not be displayed. ! #define VIEW_DISTANCE_MAX 10000.0 // Objects further away from the camera than this will not be displayed. *************** *** 92,98 **** static long gCallCountMarkerDetect = 0; - // Transformation matrix retrieval. - static int gPatt_found = FALSE; // At least one marker. - // Drawing. static ARParam gARTCparam; --- 90,93 ---- *************** *** 141,154 **** } ! static int setupMarkersObjects(char *objectDataFilename) { // Load in the object data - trained markers and associated bitmap files. ! if ((gObjectData = read_VRMLdata(objectDataFilename, &gObjectDataCount)) == NULL) { fprintf(stderr, "setupMarkersObjects(): read_VRMLdata returned error !!\n"); return (FALSE); } - printf("Object count = %d\n", gObjectDataCount); - return (TRUE); } --- 136,148 ---- } ! static int setupMarkersObjects(char *objectDataFilename, ObjectData_T **objectDataRef, int *objectDataCountRef) { // Load in the object data - trained markers and associated bitmap files. ! if ((*objectDataRef = read_VRMLdata(objectDataFilename, objectDataCountRef)) == NULL) { fprintf(stderr, "setupMarkersObjects(): read_VRMLdata returned error !!\n"); return (FALSE); } + printf("Object count = %d\n", *objectDataCountRef); return (TRUE); } *************** *** 156,162 **** // Report state of ARToolKit global variables arFittingMode, // arImageProcMode, arglDrawMode, arTemplateMatchingMode, arMatchingPCAMode. ! static void debugReportMode(void) { ! if(arFittingMode == AR_FITTING_TO_INPUT ) { fprintf(stderr, "FittingMode (Z): INPUT IMAGE\n"); } else { --- 150,156 ---- // Report state of ARToolKit global variables arFittingMode, // arImageProcMode, arglDrawMode, arTemplateMatchingMode, arMatchingPCAMode. ! static void debugReportMode(const ARGL_CONTEXT_SETTINGS_REF arglContextSettings) { ! if (arFittingMode == AR_FITTING_TO_INPUT) { fprintf(stderr, "FittingMode (Z): INPUT IMAGE\n"); } else { *************** *** 164,168 **** } ! if( arImageProcMode == AR_IMAGE_PROC_IN_FULL ) { fprintf(stderr, "ProcMode (X) : FULL IMAGE\n"); } else { --- 158,162 ---- } ! if (arImageProcMode == AR_IMAGE_PROC_IN_FULL) { fprintf(stderr, "ProcMode (X) : FULL IMAGE\n"); } else { *************** *** 170,176 **** } ! if (arglDrawModeGet(gArglSettings) == AR_DRAW_BY_GL_DRAW_PIXELS) { fprintf(stderr, "DrawMode (C) : GL_DRAW_PIXELS\n"); ! } else if (arglTexmapModeGet(gArglSettings) == AR_DRAW_TEXTURE_FULL_IMAGE) { fprintf(stderr, "DrawMode (C) : TEXTURE MAPPING (FULL RESOLUTION)\n"); } else { --- 164,170 ---- } ! if (arglDrawModeGet(arglContextSettings) == AR_DRAW_BY_GL_DRAW_PIXELS) { fprintf(stderr, "DrawMode (C) : GL_DRAW_PIXELS\n"); ! } else if (arglTexmapModeGet(arglContextSettings) == AR_DRAW_TEXTURE_FULL_IMAGE) { fprintf(stderr, "DrawMode (C) : TEXTURE MAPPING (FULL RESOLUTION)\n"); } else { *************** *** 178,182 **** } ! if( arTemplateMatchingMode == AR_TEMPLATE_MATCHING_COLOR ) { fprintf(stderr, "TemplateMatchingMode (M) : Color Template\n"); } else { --- 172,176 ---- } ! if (arTemplateMatchingMode == AR_TEMPLATE_MATCHING_COLOR) { fprintf(stderr, "TemplateMatchingMode (M) : Color Template\n"); } else { *************** *** 184,188 **** } ! if( arMatchingPCAMode == AR_MATCHING_WITHOUT_PCA ) { fprintf(stderr, "MatchingPCAMode (P) : Without PCA\n"); } else { --- 178,182 ---- } ! if (arMatchingPCAMode == AR_MATCHING_WITHOUT_PCA) { fprintf(stderr, "MatchingPCAMode (P) : Without PCA\n"); } else { *************** *** 204,208 **** static void Keyboard(unsigned char key, int x, int y) { ! int mode; switch (key) { case 0x1B: // Quit. --- 198,203 ---- static void Keyboard(unsigned char key, int x, int y) { ! int mode, threshChange = 0; ! switch (key) { case 0x1B: // Quit. *************** *** 225,229 **** gCallCountMarkerDetect = 0; arUtilTimerReset(); ! debugReportMode(); break; case '?': --- 220,235 ---- gCallCountMarkerDetect = 0; arUtilTimerReset(); ! debugReportMode(gArglSettings); ! break; ! case '-': ! threshChange = -5; ! break; ! case '+': ! case '=': ! threshChange = +5; ! break; ! case 'D': ! case 'd': ! arDebug = !arDebug; break; case '?': *************** *** 232,235 **** --- 238,243 ---- printf(" q or [esc] Quit demo.\n"); printf(" c Change arglDrawMode and arglTexmapMode.\n"); + printf(" - and + Adjust threshhold.\n"); + printf(" d Activate / deactivate debug mode.\n"); printf(" ? or / Show this help.\n"); printf("\nAdditionally, the ARVideo library supplied the following help text:\n"); *************** *** 239,242 **** --- 247,256 ---- break; } + if (threshChange) { + gARTThreshhold += threshChange; + if (gARTThreshhold < 0) gARTThreshhold = 0; + if (gARTThreshhold > 255) gARTThreshhold = 255; + printf("Threshhold changed to %d.\n", gARTThreshhold); + } } *************** *** 264,268 **** if ((image = arVideoGetImage()) != NULL) { gARTImage = image; // Save the fetched image. - gPatt_found = FALSE; // Invalidate any previous detected markers. gCallCountMarkerDetect++; // Increment ARToolKit FPS counter. --- 278,281 ---- *************** *** 300,304 **** } gObjectData[i].visible = 1; - gPatt_found = TRUE; } else { gObjectData[i].visible = 0; --- 313,316 ---- *************** *** 306,310 **** } ! // Tell GLUT to update the display. glutPostRedisplay(); } --- 318,322 ---- } ! // Tell GLUT the display has changed. glutPostRedisplay(); } *************** *** 358,386 **** gARTImage = NULL; // Image data is no longer valid after calling arVideoCapNext(). ! if (gPatt_found) { ! // Projection transformation. ! arglCameraFrustumRH(&gARTCparam, VIEW_DISTANCE_MIN, VIEW_DISTANCE_MAX, p); ! glMatrixMode(GL_PROJECTION); ! glLoadMatrixd(p); ! glMatrixMode(GL_MODELVIEW); ! ! // Viewing transformation. ! glLoadIdentity(); ! // Lighting and geometry that moves with the camera should go here. ! // (I.e. must be specified before viewing transformations.) ! //none ! // All other lighting and geometry goes here. ! // Calculate the camera position for each object and draw it. ! for (i = 0; i < gObjectDataCount; i++) { ! if ((gObjectData[i].visible != 0) && (gObjectData[i].vrml_id >= 0)) { ! //fprintf(stderr, "About to draw object %i\n", i); ! arglCameraViewRH(gObjectData[i].trans, m, VIEW_SCALEFACTOR_4); ! glLoadMatrixd(m); ! arVrmlDraw(gObjectData[i].vrml_id); ! } ! } ! } // gPatt_found // Any 2D overlays go here. --- 370,399 ---- gARTImage = NULL; // Image data is no longer valid after calling arVideoCapNext(). ! // Projection transformation. ! arglCameraFrustumRH(&gARTCparam, VIEW_DISTANCE_MIN, VIEW_DISTANCE_MAX, p); ! glMatrixMode(GL_PROJECTION); ! glLoadMatrixd(p); ! glMatrixMode(GL_MODELVIEW); ! // Viewing transformation. ! glLoadIdentity(); ! // Lighting and geometry that moves with the camera should go here. ! // (I.e. must be specified before viewing transformations.) ! //none ! ! for (i = 0; i < gObjectDataCount; i++) { ! ! if ((gObjectData[i].visible != 0) && (gObjectData[i].vrml_id >= 0)) { ! ! // Calculate the camera position for the object and draw it. ! // Replace VIEW_SCALEFACTOR with 1.0 to make one drawing unit equal to 1.0 ARToolKit units (usually millimeters). ! arglCameraViewRH(gObjectData[i].trans, m, VIEW_SCALEFACTOR); ! glLoadMatrixd(m); ! // All lighting and geometry to be drawn relative to the marker goes here. ! //fprintf(stderr, "About to draw object %i\n", i); ! arVrmlDraw(gObjectData[i].vrml_id); ! } ! } // Any 2D overlays go here. *************** *** 394,399 **** int i; char glutGamemode[32]; ! const char *cparam_name = ! "Data/camera_para.dat"; #ifdef _WIN32 char *vconf = "Data\\WDM_camera_flipV.xml"; --- 407,414 ---- int i; char glutGamemode[32]; ! const char *cparam_name = "Data/camera_para.dat"; ! // ! // Camera configuration. ! // #ifdef _WIN32 char *vconf = "Data\\WDM_camera_flipV.xml"; *************** *** 434,438 **** glutEnterGameMode(); } else { ! glutInitWindowSize(gARTCparam.xsize, gARTCparam.ysize); glutCreateWindow(argv[0]); } --- 449,453 ---- glutEnterGameMode(); } else { ! glutInitWindowSize(prefWidth, prefHeight); glutCreateWindow(argv[0]); } *************** *** 443,450 **** exit(-1); } ! debugReportMode(); arUtilTimerReset(); ! if (!setupMarkersObjects(objectDataFilename)) { fprintf(stderr, "main(): Unable to set up AR objects and markers.\n"); Quit(); --- 458,466 ---- exit(-1); } ! debugReportMode(gArglSettings); ! glEnable(GL_DEPTH_TEST); arUtilTimerReset(); ! if (!setupMarkersObjects(objectDataFilename, &gObjectData, &gObjectDataCount)) { fprintf(stderr, "main(): Unable to set up AR objects and markers.\n"); Quit(); |
From: Philip L. <phi...@us...> - 2007-01-16 21:08:22
|
Update of /cvsroot/artoolkit/artoolkit/bin/Data In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv32173 Modified Files: object_data_vrml Log Message: Small cleanup of example code, plus temp. fix for problem with bud_B vrml. Index: object_data_vrml =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/bin/Data/object_data_vrml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** object_data_vrml 30 Nov 2004 03:54:53 -0000 1.1 --- object_data_vrml 16 Jan 2007 21:08:16 -0000 1.2 *************** *** 3,7 **** #pattern 1 ! VRML Wrl/bud_B.dat Data/patt.hiro 80.0 --- 3,8 ---- #pattern 1 ! #VRML Wrl/bud_B.dat ! VRML Wrl/snoman.dat Data/patt.hiro 80.0 |
From: Philip L. <phi...@us...> - 2007-01-16 21:08:12
|
Update of /cvsroot/artoolkit/artoolkit/examples/simpleLite In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv32074 Modified Files: simpleLite.c Log Message: Small cleanup of example code, plus temp. fix for problem with bud_B vrml. Index: simpleLite.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/examples/simpleLite/simpleLite.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** simpleLite.c 17 Nov 2006 03:34:25 -0000 1.20 --- simpleLite.c 16 Jan 2007 21:08:07 -0000 1.21 *************** *** 186,195 **** static int setupMarker(const char *patt_name, int *patt_id) { ! ! if((*patt_id = arLoadPatt(patt_name)) < 0) { ! fprintf(stderr, "setupMarker(): pattern load error !!\n"); ! return (FALSE); ! } ! return (TRUE); } --- 186,195 ---- static int setupMarker(const char *patt_name, int *patt_id) { ! // Loading only 1 pattern in this example. ! if((*patt_id = arLoadPatt(patt_name)) < 0) { ! fprintf(stderr, "setupMarker(): pattern load error !!\n"); ! return (FALSE); ! } ! return (TRUE); } *************** *** 197,203 **** // Report state of ARToolKit global variables arFittingMode, // arImageProcMode, arglDrawMode, arTemplateMatchingMode, arMatchingPCAMode. ! static void debugReportMode(void) { ! if(arFittingMode == AR_FITTING_TO_INPUT ) { fprintf(stderr, "FittingMode (Z): INPUT IMAGE\n"); } else { --- 197,203 ---- // Report state of ARToolKit global variables arFittingMode, // arImageProcMode, arglDrawMode, arTemplateMatchingMode, arMatchingPCAMode. ! static void debugReportMode(const ARGL_CONTEXT_SETTINGS_REF arglContextSettings) { ! if (arFittingMode == AR_FITTING_TO_INPUT) { fprintf(stderr, "FittingMode (Z): INPUT IMAGE\n"); } else { *************** *** 205,209 **** } ! if( arImageProcMode == AR_IMAGE_PROC_IN_FULL ) { fprintf(stderr, "ProcMode (X) : FULL IMAGE\n"); } else { --- 205,209 ---- } ! if (arImageProcMode == AR_IMAGE_PROC_IN_FULL) { fprintf(stderr, "ProcMode (X) : FULL IMAGE\n"); } else { *************** *** 211,217 **** } ! if (arglDrawModeGet(gArglSettings) == AR_DRAW_BY_GL_DRAW_PIXELS) { fprintf(stderr, "DrawMode (C) : GL_DRAW_PIXELS\n"); ! } else if (arglTexmapModeGet(gArglSettings) == AR_DRAW_TEXTURE_FULL_IMAGE) { fprintf(stderr, "DrawMode (C) : TEXTURE MAPPING (FULL RESOLUTION)\n"); } else { --- 211,217 ---- } ! if (arglDrawModeGet(arglContextSettings) == AR_DRAW_BY_GL_DRAW_PIXELS) { fprintf(stderr, "DrawMode (C) : GL_DRAW_PIXELS\n"); ! } else if (arglTexmapModeGet(arglContextSettings) == AR_DRAW_TEXTURE_FULL_IMAGE) { fprintf(stderr, "DrawMode (C) : TEXTURE MAPPING (FULL RESOLUTION)\n"); } else { *************** *** 219,223 **** } ! if( arTemplateMatchingMode == AR_TEMPLATE_MATCHING_COLOR ) { fprintf(stderr, "TemplateMatchingMode (M) : Color Template\n"); } else { --- 219,223 ---- } ! if (arTemplateMatchingMode == AR_TEMPLATE_MATCHING_COLOR) { fprintf(stderr, "TemplateMatchingMode (M) : Color Template\n"); } else { *************** *** 225,229 **** } ! if( arMatchingPCAMode == AR_MATCHING_WITHOUT_PCA ) { fprintf(stderr, "MatchingPCAMode (P) : Without PCA\n"); } else { --- 225,229 ---- } ! if (arMatchingPCAMode == AR_MATCHING_WITHOUT_PCA) { fprintf(stderr, "MatchingPCAMode (P) : Without PCA\n"); } else { *************** *** 266,270 **** gCallCountMarkerDetect = 0; arUtilTimerReset(); ! debugReportMode(); break; case 'D': --- 266,270 ---- gCallCountMarkerDetect = 0; arUtilTimerReset(); ! debugReportMode(gArglSettings); break; case 'D': *************** *** 310,314 **** if ((image = arVideoGetImage()) != NULL) { gARTImage = image; // Save the fetched image. - gPatt_found = FALSE; // Invalidate any previous detected markers. gCallCountMarkerDetect++; // Increment ARToolKit FPS counter. --- 310,313 ---- *************** *** 333,336 **** --- 332,337 ---- arGetTransMat(&(marker_info[k]), gPatt_centre, gPatt_width, gPatt_trans); gPatt_found = TRUE; + } else { + gPatt_found = FALSE; } *************** *** 386,408 **** gARTImage = NULL; // Image data is no longer valid after calling arVideoCapNext(). ! if (gPatt_found) { ! // Projection transformation. ! arglCameraFrustumRH(&gARTCparam, VIEW_DISTANCE_MIN, VIEW_DISTANCE_MAX, p); ! glMatrixMode(GL_PROJECTION); ! glLoadMatrixd(p); ! glMatrixMode(GL_MODELVIEW); ! ! // Viewing transformation. ! glLoadIdentity(); ! // Lighting and geometry that moves with the camera should go here. ! // (I.e. must be specified before viewing transformations.) ! //none ! // ARToolKit supplied distance in millimetres, but I want OpenGL to work in my units. arglCameraViewRH(gPatt_trans, m, VIEW_SCALEFACTOR); glLoadMatrixd(m); ! // All other lighting and geometry goes here. DrawCube(); } // gPatt_found --- 387,412 ---- gARTImage = NULL; // Image data is no longer valid after calling arVideoCapNext(). ! // Projection transformation. ! arglCameraFrustumRH(&gARTCparam, VIEW_DISTANCE_MIN, VIEW_DISTANCE_MAX, p); ! glMatrixMode(GL_PROJECTION); ! glLoadMatrixd(p); ! glMatrixMode(GL_MODELVIEW); ! // Viewing transformation. ! glLoadIdentity(); ! // Lighting and geometry that moves with the camera should go here. ! // (I.e. must be specified before viewing transformations.) ! //none ! ! if (gPatt_found) { ! ! // Calculate the camera position relative to the marker. ! // Replace VIEW_SCALEFACTOR with 1.0 to make one drawing unit equal to 1.0 ARToolKit units (usually millimeters). arglCameraViewRH(gPatt_trans, m, VIEW_SCALEFACTOR); glLoadMatrixd(m); ! // All lighting and geometry to be drawn relative to the marker goes here. DrawCube(); + } // gPatt_found *************** *** 441,449 **** exit(-1); } ! if (!setupMarker(patt_name, &gPatt_id)) { ! fprintf(stderr, "main(): Unable to set up AR marker.\n"); ! exit(-1); ! } ! // ---------------------------------------------------------------------------- // Library setup. --- 445,449 ---- exit(-1); } ! // ---------------------------------------------------------------------------- // Library setup. *************** *** 467,474 **** exit(-1); } ! debugReportMode(); glEnable(GL_DEPTH_TEST); arUtilTimerReset(); // Register GLUT event-handling callbacks. // NB: Idle() is registered by Visibility. --- 467,479 ---- exit(-1); } ! debugReportMode(gArglSettings); glEnable(GL_DEPTH_TEST); arUtilTimerReset(); + if (!setupMarker(patt_name, &gPatt_id)) { + fprintf(stderr, "main(): Unable to set up AR marker.\n"); + Quit(); + } + // Register GLUT event-handling callbacks. // NB: Idle() is registered by Visibility. |
From: Philip L. <phi...@us...> - 2007-01-16 20:58:04
|
Update of /cvsroot/artoolkit/artoolkit/lib/SRC/ARvrml In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv27764 Modified Files: arViewer.cpp Log Message: Removed old code. Index: arViewer.cpp =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/ARvrml/arViewer.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** arViewer.cpp 15 Jan 2007 22:10:30 -0000 1.4 --- arViewer.cpp 16 Jan 2007 20:57:52 -0000 1.5 *************** *** 29,38 **** */ - //#ifdef _WIN32 - //# include <windows.h> - //#endif - - //#include <stdio.h> - //#include <string.h> #include <iostream> #include <math.h> --- 29,32 ---- |
From: Philip L. <phi...@us...> - 2007-01-15 22:11:07
|
Update of /cvsroot/artoolkit/artoolkit/ARToolKit.xcodeproj In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv21892 Modified Files: project.pbxproj Log Message: Update Mac project file for OpenVRML-0.16.3 in Fink. Index: project.pbxproj =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/ARToolKit.xcodeproj/project.pbxproj,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** project.pbxproj 17 Nov 2006 03:41:28 -0000 1.17 --- project.pbxproj 15 Jan 2007 22:11:03 -0000 1.18 *************** *** 116,127 **** /* Begin PBXBuildFile section */ ! 4A304AE30A4B8D98003AD621 /* libjpeg.62.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A304AD90A4B8D98003AD621 /* libjpeg.62.0.0.dylib */; }; ! 4A304AEC0A4B8D98003AD621 /* libpng12.0.12.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A304AE20A4B8D98003AD621 /* libpng12.0.12.0.dylib */; }; ! 4A304AF50A4B8F67003AD621 /* libopenvrml-gl.6.0.3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A304ADC0A4B8D98003AD621 /* libopenvrml-gl.6.0.3.dylib */; }; ! 4A304AF60A4B8F67003AD621 /* libopenvrml.6.1.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A304ADE0A4B8D98003AD621 /* libopenvrml.6.1.0.dylib */; }; ! 4A304B020A4B905A003AD621 /* libjpeg.62.0.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4A304AD90A4B8D98003AD621 /* libjpeg.62.0.0.dylib */; }; ! 4A304B050A4B905A003AD621 /* libopenvrml-gl.6.0.3.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4A304ADC0A4B8D98003AD621 /* libopenvrml-gl.6.0.3.dylib */; }; ! 4A304B060A4B905A003AD621 /* libopenvrml.6.1.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4A304ADE0A4B8D98003AD621 /* libopenvrml.6.1.0.dylib */; }; ! 4A304B090A4B905A003AD621 /* libpng12.0.12.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4A304AE20A4B8D98003AD621 /* libpng12.0.12.0.dylib */; }; 4A3F11510649F8040042B0D7 /* mAlloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A427D2B0484329900B56093 /* mAlloc.c */; }; 4A3F11570649F8050042B0D7 /* mAllocDup.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A427D2C0484329900B56093 /* mAllocDup.c */; }; --- 116,123 ---- /* Begin PBXBuildFile section */ ! 4A304AE30A4B8D98003AD621 /* libjpeg.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A304AD90A4B8D98003AD621 /* libjpeg.dylib */; }; ! 4A304AEC0A4B8D98003AD621 /* libpng12.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A304AE20A4B8D98003AD621 /* libpng12.dylib */; }; ! 4A304AF50A4B8F67003AD621 /* libopenvrml.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A304ADC0A4B8D98003AD621 /* libopenvrml.dylib */; }; ! 4A304AF60A4B8F67003AD621 /* libopenvrml-gl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A304ADE0A4B8D98003AD621 /* libopenvrml-gl.dylib */; }; 4A3F11510649F8040042B0D7 /* mAlloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A427D2B0484329900B56093 /* mAlloc.c */; }; 4A3F11570649F8050042B0D7 /* mAllocDup.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A427D2C0484329900B56093 /* mAllocDup.c */; }; *************** *** 193,198 **** 4A8EA5B00658754A00ADDDD1 /* gsub_lite.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A8EA5AF0658754A00ADDDD1 /* gsub_lite.h */; }; 4AC48C650A37BA7F007A153D /* libARgsub_lite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A66475606598B950061DA76 /* libARgsub_lite.a */; }; ! 4ADBC7C10B0C0A5E00A1431F /* libboost_thread-1_33_1.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4ADBC7C00B0C0A5E00A1431F /* libboost_thread-1_33_1.dylib */; }; ! 4ADBCB3B0B0C157400A1431F /* libboost_thread-1_33_1.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4ADBC7C00B0C0A5E00A1431F /* libboost_thread-1_33_1.dylib */; }; 4ADF303606A78E0B00F6204E /* arMultiGetTransMat.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A427D490484329900B56093 /* arMultiGetTransMat.c */; }; 4AF15F2E0AB129780015588E /* libstdc++.6.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4AF15F2D0AB129780015588E /* libstdc++.6.dylib */; }; --- 189,193 ---- 4A8EA5B00658754A00ADDDD1 /* gsub_lite.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A8EA5AF0658754A00ADDDD1 /* gsub_lite.h */; }; 4AC48C650A37BA7F007A153D /* libARgsub_lite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A66475606598B950061DA76 /* libARgsub_lite.a */; }; ! 4ADBC7C10B0C0A5E00A1431F /* libboost_thread.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4ADBC7C00B0C0A5E00A1431F /* libboost_thread.dylib */; }; 4ADF303606A78E0B00F6204E /* arMultiGetTransMat.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A427D490484329900B56093 /* arMultiGetTransMat.c */; }; 4AF15F2E0AB129780015588E /* libstdc++.6.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4AF15F2D0AB129780015588E /* libstdc++.6.dylib */; }; *************** *** 1247,1255 **** dstSubfolderSpec = 6; files = ( - 4A304B020A4B905A003AD621 /* libjpeg.62.0.0.dylib in CopyFiles */, - 4A304B050A4B905A003AD621 /* libopenvrml-gl.6.0.3.dylib in CopyFiles */, - 4A304B060A4B905A003AD621 /* libopenvrml.6.1.0.dylib in CopyFiles */, - 4A304B090A4B905A003AD621 /* libpng12.0.12.0.dylib in CopyFiles */, - 4ADBCB3B0B0C157400A1431F /* libboost_thread-1_33_1.dylib in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; --- 1242,1245 ---- *************** *** 1267,1274 **** 4A2244950659A20D0014DA8E /* Makefile.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Makefile.in; sourceTree = "<group>"; }; 4A2246520659B1EA0014DA8E /* simpleLite */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = simpleLite; sourceTree = "<group>"; }; ! 4A304AD90A4B8D98003AD621 /* libjpeg.62.0.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libjpeg.62.0.0.dylib; path = "openvrml-0.16.1-bin-macosx/lib/libjpeg.62.0.0.dylib"; sourceTree = "<group>"; }; ! 4A304ADC0A4B8D98003AD621 /* libopenvrml-gl.6.0.3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libopenvrml-gl.6.0.3.dylib"; path = "openvrml-0.16.1-bin-macosx/lib/libopenvrml-gl.6.0.3.dylib"; sourceTree = "<group>"; }; ! 4A304ADE0A4B8D98003AD621 /* libopenvrml.6.1.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libopenvrml.6.1.0.dylib; path = "openvrml-0.16.1-bin-macosx/lib/libopenvrml.6.1.0.dylib"; sourceTree = "<group>"; }; ! 4A304AE20A4B8D98003AD621 /* libpng12.0.12.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libpng12.0.12.0.dylib; path = "openvrml-0.16.1-bin-macosx/lib/libpng12.0.12.0.dylib"; sourceTree = "<group>"; }; 4A307DCF07DD3E7B00613859 /* ARVideoSettingsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARVideoSettingsController.m; sourceTree = "<group>"; }; 4A3F14FC064A0C510042B0D7 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = /System/Library/Frameworks/GLUT.framework; sourceTree = "<absolute>"; }; --- 1257,1264 ---- 4A2244950659A20D0014DA8E /* Makefile.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Makefile.in; sourceTree = "<group>"; }; 4A2246520659B1EA0014DA8E /* simpleLite */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = simpleLite; sourceTree = "<group>"; }; ! 4A304AD90A4B8D98003AD621 /* libjpeg.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libjpeg.dylib; path = /sw/lib/libjpeg.dylib; sourceTree = "<absolute>"; }; ! 4A304ADC0A4B8D98003AD621 /* libopenvrml.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libopenvrml.dylib; path = /sw/lib/libopenvrml.dylib; sourceTree = "<absolute>"; }; ! 4A304ADE0A4B8D98003AD621 /* libopenvrml-gl.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libopenvrml-gl.dylib"; path = "/sw/lib/libopenvrml-gl.dylib"; sourceTree = "<absolute>"; }; ! 4A304AE20A4B8D98003AD621 /* libpng12.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libpng12.dylib; path = /sw/lib/libpng12.dylib; sourceTree = "<absolute>"; }; 4A307DCF07DD3E7B00613859 /* ARVideoSettingsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARVideoSettingsController.m; sourceTree = "<group>"; }; 4A3F14FC064A0C510042B0D7 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = /System/Library/Frameworks/GLUT.framework; sourceTree = "<absolute>"; }; *************** *** 1531,1535 **** 4AC3C0DF07518F650073D2C6 /* simpleTest.dsp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = simpleTest.dsp; sourceTree = "<group>"; }; 4AC3C0E007518F790073D2C6 /* simpleTest2.dsp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = simpleTest2.dsp; sourceTree = "<group>"; }; ! 4ADBC7C00B0C0A5E00A1431F /* libboost_thread-1_33_1.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libboost_thread-1_33_1.dylib"; path = "openvrml-0.16.1-bin-macosx/lib/libboost_thread-1_33_1.dylib"; sourceTree = "<group>"; }; 4AE22FFD0659B7A80047D402 /* libARMulti.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libARMulti.a; sourceTree = BUILT_PRODUCTS_DIR; }; 4AE22FFE0659B7A80047D402 /* libARgsubUtil.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libARgsubUtil.a; sourceTree = BUILT_PRODUCTS_DIR; }; --- 1521,1525 ---- 4AC3C0DF07518F650073D2C6 /* simpleTest.dsp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = simpleTest.dsp; sourceTree = "<group>"; }; 4AC3C0E007518F790073D2C6 /* simpleTest2.dsp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = simpleTest2.dsp; sourceTree = "<group>"; }; ! 4ADBC7C00B0C0A5E00A1431F /* libboost_thread.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libboost_thread.dylib; path = /sw/lib/libboost_thread.dylib; sourceTree = "<absolute>"; }; 4AE22FFD0659B7A80047D402 /* libARMulti.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libARMulti.a; sourceTree = BUILT_PRODUCTS_DIR; }; 4AE22FFE0659B7A80047D402 /* libARgsubUtil.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libARgsubUtil.a; sourceTree = BUILT_PRODUCTS_DIR; }; *************** *** 1868,1876 **** 788C83C0089AB6AE003E3825 /* libARvideo.a in Frameworks */, 788C83DE089AB7E5003E3825 /* libARvrml.a in Frameworks */, ! 4A304AE30A4B8D98003AD621 /* libjpeg.62.0.0.dylib in Frameworks */, ! 4A304AF50A4B8F67003AD621 /* libopenvrml-gl.6.0.3.dylib in Frameworks */, ! 4A304AF60A4B8F67003AD621 /* libopenvrml.6.1.0.dylib in Frameworks */, ! 4A304AEC0A4B8D98003AD621 /* libpng12.0.12.0.dylib in Frameworks */, ! 4ADBC7C10B0C0A5E00A1431F /* libboost_thread-1_33_1.dylib in Frameworks */, 4AF15F2E0AB129780015588E /* libstdc++.6.dylib in Frameworks */, ); --- 1858,1866 ---- 788C83C0089AB6AE003E3825 /* libARvideo.a in Frameworks */, 788C83DE089AB7E5003E3825 /* libARvrml.a in Frameworks */, ! 4A304AE30A4B8D98003AD621 /* libjpeg.dylib in Frameworks */, ! 4A304AF50A4B8F67003AD621 /* libopenvrml.dylib in Frameworks */, ! 4A304AF60A4B8F67003AD621 /* libopenvrml-gl.dylib in Frameworks */, ! 4A304AEC0A4B8D98003AD621 /* libpng12.dylib in Frameworks */, ! 4ADBC7C10B0C0A5E00A1431F /* libboost_thread.dylib in Frameworks */, 4AF15F2E0AB129780015588E /* libstdc++.6.dylib in Frameworks */, ); *************** *** 1993,2001 **** isa = PBXGroup; children = ( ! 4ADBC7C00B0C0A5E00A1431F /* libboost_thread-1_33_1.dylib */, ! 4A304AD90A4B8D98003AD621 /* libjpeg.62.0.0.dylib */, ! 4A304ADC0A4B8D98003AD621 /* libopenvrml-gl.6.0.3.dylib */, ! 4A304ADE0A4B8D98003AD621 /* libopenvrml.6.1.0.dylib */, ! 4A304AE20A4B8D98003AD621 /* libpng12.0.12.0.dylib */, 4A934B5C086A150A00DF2FAC /* Cocoa.framework */, 4A3F167F064A0E270042B0D7 /* Carbon.framework */, --- 1983,1991 ---- isa = PBXGroup; children = ( ! 4ADBC7C00B0C0A5E00A1431F /* libboost_thread.dylib */, ! 4A304AD90A4B8D98003AD621 /* libjpeg.dylib */, ! 4A304ADC0A4B8D98003AD621 /* libopenvrml.dylib */, ! 4A304ADE0A4B8D98003AD621 /* libopenvrml-gl.dylib */, ! 4A304AE20A4B8D98003AD621 /* libpng12.dylib */, 4A934B5C086A150A00DF2FAC /* Cocoa.framework */, 4A3F167F064A0E270042B0D7 /* Carbon.framework */, *************** *** 4942,4949 **** HEADER_SEARCH_PATHS = ( "$(HEADER_SEARCH_PATHS_QUOTED_1)", ! "$(HEADER_SEARCH_PATHS_QUOTED_2)", ); HEADER_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/include\""; - HEADER_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/openvrml-0.16.1-bin-macosx/include\""; INSTALL_PATH = "$(SRCROOT)/lib"; LIBRARY_STYLE = STATIC; --- 4932,4939 ---- HEADER_SEARCH_PATHS = ( "$(HEADER_SEARCH_PATHS_QUOTED_1)", ! /sw/include/openvrml, ! /sw/include, ); HEADER_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/include\""; INSTALL_PATH = "$(SRCROOT)/lib"; LIBRARY_STYLE = STATIC; *************** *** 4966,4973 **** HEADER_SEARCH_PATHS = ( "$(HEADER_SEARCH_PATHS_QUOTED_1)", ! "$(HEADER_SEARCH_PATHS_QUOTED_2)", ); HEADER_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/include\""; - HEADER_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/openvrml-0.16.1-bin-macosx/include\""; INSTALL_PATH = "$(SRCROOT)/lib"; LIBRARY_STYLE = STATIC; --- 4956,4963 ---- HEADER_SEARCH_PATHS = ( "$(HEADER_SEARCH_PATHS_QUOTED_1)", ! /sw/include/openvrml, ! /sw/include, ); HEADER_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/include\""; INSTALL_PATH = "$(SRCROOT)/lib"; LIBRARY_STYLE = STATIC; *************** *** 5671,5685 **** buildSettings = { ARCHS = "$(NATIVE_ARCH)"; ! HEADER_SEARCH_PATHS = include; INFOPLIST_FILE = "examples/simpleVRML/simpleVRML-Info.plist"; INSTALL_PATH = "$(SRCROOT)/bin"; LIBRARY_SEARCH_PATHS = ( "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", ! "$(LIBRARY_SEARCH_PATHS_QUOTED_2)", ! "$(LIBRARY_SEARCH_PATHS_QUOTED_3)", ); LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/lib\""; - LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/openvrml/lib\""; - LIBRARY_SEARCH_PATHS_QUOTED_3 = "\"$(SRCROOT)/openvrml-0.16.1-bin-macosx/lib\""; PRODUCT_NAME = simpleVRML; }; --- 5661,5676 ---- buildSettings = { ARCHS = "$(NATIVE_ARCH)"; ! HEADER_SEARCH_PATHS = ( ! include, ! /sw/include/openvrml, ! /sw/include, ! ); INFOPLIST_FILE = "examples/simpleVRML/simpleVRML-Info.plist"; INSTALL_PATH = "$(SRCROOT)/bin"; LIBRARY_SEARCH_PATHS = ( "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", ! /sw/lib, ); LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/lib\""; PRODUCT_NAME = simpleVRML; }; *************** *** 5690,5704 **** buildSettings = { ARCHS = "$(NATIVE_ARCH)"; ! HEADER_SEARCH_PATHS = include; INFOPLIST_FILE = "examples/simpleVRML/simpleVRML-Info.plist"; INSTALL_PATH = "$(SRCROOT)/bin"; LIBRARY_SEARCH_PATHS = ( "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", ! "$(LIBRARY_SEARCH_PATHS_QUOTED_2)", ! "$(LIBRARY_SEARCH_PATHS_QUOTED_3)", ); LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/lib\""; - LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/openvrml/lib\""; - LIBRARY_SEARCH_PATHS_QUOTED_3 = "\"$(SRCROOT)/openvrml-0.16.1-bin-macosx/lib\""; PRODUCT_NAME = simpleVRML; }; --- 5681,5696 ---- buildSettings = { ARCHS = "$(NATIVE_ARCH)"; ! HEADER_SEARCH_PATHS = ( ! include, ! /sw/include/openvrml, ! /sw/include, ! ); INFOPLIST_FILE = "examples/simpleVRML/simpleVRML-Info.plist"; INSTALL_PATH = "$(SRCROOT)/bin"; LIBRARY_SEARCH_PATHS = ( "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", ! /sw/lib, ); LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/lib\""; PRODUCT_NAME = simpleVRML; }; |
From: Philip L. <phi...@us...> - 2007-01-15 22:10:34
|
Update of /cvsroot/artoolkit/artoolkit/lib/SRC/ARvrml In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv21831 Modified Files: arViewer.h arViewer.cpp Log Message: Fix up vrml renderer (backgrounds were still showing). Index: arViewer.cpp =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/ARvrml/arViewer.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** arViewer.cpp 17 Nov 2006 03:21:19 -0000 1.3 --- arViewer.cpp 15 Jan 2007 22:10:30 -0000 1.4 *************** *** 192,196 **** glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDisable(GL_FOG); // this is a global attribute ! glDisable(GL_TEXTURE_2D); glEnable(GL_CULL_FACE); glFrontFace(GL_CCW); --- 192,196 ---- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDisable(GL_FOG); // this is a global attribute ! //glDisable(GL_TEXTURE_2D); glEnable(GL_CULL_FACE); glFrontFace(GL_CCW); *************** *** 223,227 **** glDisable(GL_BLEND); glDisable(GL_CULL_FACE); ! glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glMatrixMode(GL_MODELVIEW); --- 223,227 ---- glDisable(GL_BLEND); glDisable(GL_CULL_FACE); ! //glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glMatrixMode(GL_MODELVIEW); *************** *** 259,267 **** viewer::object_t arVrmlViewer::insert_background(const std::vector<float> & groundAngle, ! const std::vector<openvrml::color> & groundColor, ! const std::vector<float> & skyAngle, ! const std::vector<openvrml::color> & skyColor, ! size_t * whc, ! unsigned char ** pixels) { return 0; --- 259,271 ---- viewer::object_t arVrmlViewer::insert_background(const std::vector<float> & groundAngle, ! const std::vector<color> & groundColor, ! const std::vector<float> & skyAngle, ! const std::vector<color> & skyColor, ! const image & front, ! const image & back, ! const image & left, ! const image & right, ! const image & top, ! const image & bottom) { return 0; Index: arViewer.h =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/ARvrml/arViewer.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** arViewer.h 17 Nov 2006 03:21:19 -0000 1.2 --- arViewer.h 15 Jan 2007 22:10:30 -0000 1.3 *************** *** 72,82 **** float visibilityLimit); ! virtual viewer::object_t insert_background(const std::vector<float> & groundAngle, ! const std::vector<openvrml::color> & groundColor, ! const std::vector<float> & skyAngle, ! const std::vector<openvrml::color> & skyColor, ! size_t * whc = 0, ! unsigned char ** pixels = 0); ! virtual viewer::object_t insert_dir_light(float ambientIntensity, float intensity, --- 72,86 ---- float visibilityLimit); ! virtual viewer::object_t insert_background(const std::vector<float> & groundAngle, ! const std::vector<openvrml::color> & groundColor, ! const std::vector<float> & skyAngle, ! const std::vector<openvrml::color> & skyColor, ! const openvrml::image & front, ! const openvrml::image & back, ! const openvrml::image & left, ! const openvrml::image & right, ! const openvrml::image & top, ! const openvrml::image & bottom); ! virtual viewer::object_t insert_dir_light(float ambientIntensity, float intensity, |
From: Hartmut S. <ret...@us...> - 2006-12-06 02:14:34
|
Update of /cvsroot/artoolkit/artoolkit/lib/SRC/VideoWin32DirectShow In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv17294/lib/SRC/VideoWin32DirectShow Modified Files: videoWin32DirectShow.cpp Log Message: - added reading of environment variable ARTOOLKIT_CONFIG for DSVL video capture Index: videoWin32DirectShow.cpp =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/VideoWin32DirectShow/videoWin32DirectShow.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** videoWin32DirectShow.cpp 28 Sep 2006 05:50:16 -0000 1.9 --- videoWin32DirectShow.cpp 6 Dec 2006 02:14:32 -0000 1.10 *************** *** 156,160 **** vid->graphManager = new DSVL_VideoSource(); if (!config) { ! if (FAILED(vid->graphManager->BuildGraphFromXMLString(config_default))) return(NULL); } else { if (strncmp(config, "<?xml", 5) == 0) { --- 156,167 ---- vid->graphManager = new DSVL_VideoSource(); if (!config) { ! ! config = getenv("ARTOOLKIT_CONFIG"); ! ! if (config == NULL) { ! config = &config_default[0]; ! } ! if (FAILED(vid->graphManager->BuildGraphFromXMLString(config))) return(NULL); ! } else { if (strncmp(config, "<?xml", 5) == 0) { |
From: Hartmut S. <ret...@us...> - 2006-12-06 00:37:29
|
Update of /cvsroot/artoolkit/artoolkit/lib/SRC/VideoLinuxV4L In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv11928/lib/SRC/VideoLinuxV4L Modified Files: Makefile.in ccvt.h ccvt_c.c video.c Log Message: - Added an updated CCVT version which hopefully will work as expected on x64 systems. Index: ccvt.h =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/VideoLinuxV4L/ccvt.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ccvt.h 22 Nov 2004 02:32:40 -0000 1.1 --- ccvt.h 6 Dec 2006 00:37:23 -0000 1.2 *************** *** 1,89 **** ! /* ! (C) 2000 Nemosoft Unv. nem...@sm... ! ! This program is free software; you can redistribute it and/or modify ! it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2 of the License, or ! (at your option) any later version. ! ! This program is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! GNU General Public License for more details. ! ! You should have received a copy of the GNU General Public License ! along with this program; if not, write to the Free Software ! Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ! ! */ ! ! #ifndef CCVT_H ! #define CCVT_H ! ! #ifdef __cplusplus ! extern "C" { ! #endif ! ! /* Colour ConVerT: going from one colour space to another ! ! Format descriptions: ! 420i = "4:2:0 interlaced" ! YYYY UU YYYY UU even lines ! YYYY VV YYYY VV odd lines ! U/V data is subsampled by 2 both in horizontal ! and vertical directions, and intermixed with the Y values. ! ! 420p = "4:2:0 planar" ! YYYYYYYY N lines ! UUUU N/2 lines ! VVVV N/2 lines ! U/V is again subsampled, but all the Ys, Us and Vs are placed ! together in separate buffers. The buffers may be placed in ! one piece of contiguous memory though, with Y buffer first, ! followed by U, followed by V. ! ! yuyv = "4:2:2 interlaced" ! YUYV YUYV YUYV ... N lines ! The U/V data is subsampled by 2 in horizontal direction only. ! ! bgr24 = 3 bytes per pixel, in the order Blue Green Red (whoever came up ! with that idea...) ! rgb24 = 3 bytes per pixel, in the order Red Green Blue (which is sensible) ! rgb32 = 4 bytes per pixel, in the order Red Green Blue Alpha, with ! Alpha really being a filler byte (0) ! bgr32 = last but not least, 4 bytes per pixel, in the order Blue Green Red ! Alpha, Alpha again a filler byte (0) ! */ ! ! /* Functions in ccvt_i386.S/ccvt_c.c */ ! /* 4:2:0 YUV interlaced to RGB/BGR */ ! void ccvt_420i_bgr24(int width, int height, void *src, void *dst); ! void ccvt_420i_rgb24(int width, int height, void *src, void *dst); ! void ccvt_420i_bgr32(int width, int height, void *src, void *dst); ! void ccvt_420i_rgb32(int width, int height, void *src, void *dst); ! ! /* 4:2:2 YUYV interlaced to RGB/BGR */ ! void ccvt_yuyv_rgb32(int width, int height, void *src, void *dst); ! void ccvt_yuyv_bgr32(int width, int height, void *src, void *dst); ! ! /* 4:2:0 YUV planar to RGB/BGR */ ! void ccvt_420p_rgb32(int width, int height, void *srcy, void *srcu, void *srcv, void *dst); ! void ccvt_420p_bgr32(int width, int height, void *srcy, void *srcu, void *srcv, void *dst); ! void ccvt_420p_rgb24(int width, int height, void *srcy, void *srcu, void *srcv, void *dst); ! void ccvt_420p_bgr24(int width, int height, void *srcy, void *srcu, void *srcv, void *dst); ! ! /* RGB/BGR to 4:2:0 YUV interlaced */ ! ! /* RGB/BGR to 4:2:0 YUV planar */ ! void ccvt_rgb24_420p(int width, int height, void *src, void *dsty, void *dstu, void *dstv); ! void ccvt_bgr24_420p(int width, int height, void *src, void *dsty, void *dstu, void *dstv); ! ! /* Go from 420i to other yuv formats */ ! void ccvt_420i_420p(int width, int height, void *src, void *dsty, void *dstu, void *dstv); ! void ccvt_420i_yuyv(int width, int height, void *src, void *dst); ! ! #ifdef __cplusplus ! } ! #endif ! ! #endif --- 1,116 ---- ! /* CCVT: ColourConVerT: simple library for converting colourspaces ! Copyright (C) 2002 Nemosoft Unv. ! ! This program is free software; you can redistribute it and/or modify ! it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2 of the License, or ! (at your option) any later version. ! ! This program is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! GNU General Public License for more details. ! ! You should have received a copy of the GNU General Public License ! along with this program; if not, write to the Free Software ! Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ! ! For questions, remarks, patches, etc. for this program, the author can be ! reached at nem...@sm.... ! */ ! ! /* ! $Log$ ! Revision 1.2 2006/12/06 00:37:23 retrakker ! - Added an updated CCVT version which hopefully will work as expected on ! x64 systems. ! ! Revision 1.1 2005/05/04 06:53:17 section314 ! Added YUV420P-->RGB conversion ! ! Revision 1.10 2003/10/24 16:55:18 nemosoft ! removed erronous log messages ! ! Revision 1.9 2002/11/03 22:46:25 nemosoft ! Adding various RGB to RGB functions. ! Adding proper copyright header too. ! ! Revision 1.8 2002/04/14 01:00:27 nemosoft ! Finishing touches: adding const, adding libs for 'show' ! */ ! ! ! #ifndef CCVT_H ! #define CCVT_H ! ! #ifdef __cplusplus ! extern "C" { ! #endif ! ! /* Colour ConVerT: going from one colour space to another. ! ** NOTE: the set of available functions is far from complete! ** ! ! Format descriptions: ! 420i = "4:2:0 interlaced" ! YYYY UU YYYY UU even lines ! YYYY VV YYYY VV odd lines ! U/V data is subsampled by 2 both in horizontal ! and vertical directions, and intermixed with the Y values. ! ! 420p = "4:2:0 planar" ! YYYYYYYY N lines ! UUUU N/2 lines ! VVVV N/2 lines ! U/V is again subsampled, but all the Ys, Us and Vs are placed ! together in separate buffers. The buffers may be placed in ! one piece of contiguous memory though, with Y buffer first, ! followed by U, followed by V. ! ! yuyv = "4:2:2 interlaced" ! YUYV YUYV YUYV ... N lines ! The U/V data is subsampled by 2 in horizontal direction only. ! ! bgr24 = 3 bytes per pixel, in the order Blue Green Red (whoever came up ! with that idea...) ! rgb24 = 3 bytes per pixel, in the order Red Green Blue (which is sensible) ! rgb32 = 4 bytes per pixel, in the order Red Green Blue Alpha, with ! Alpha really being a filler byte (0) ! bgr32 = last but not least, 4 bytes per pixel, in the order Blue Green Red ! Alpha, Alpha again a filler byte (0) ! */ ! ! /* 4:2:0 YUV planar to RGB/BGR */ ! void ccvt_420p_bgr24(int width, int height, const void *src, void *dst); ! void ccvt_420p_rgb24(int width, int height, const void *src, void *dst); ! void ccvt_420p_bgr32(int width, int height, const void *src, void *dst); ! void ccvt_420p_rgb32(int width, int height, const void *src, void *dst); ! ! /* 4:2:2 YUYV interlaced to RGB/BGR */ ! void ccvt_yuyv_rgb32(int width, int height, const void *src, void *dst); ! void ccvt_yuyv_bgr32(int width, int height, const void *src, void *dst); ! ! /* 4:2:2 YUYV interlaced to 4:2:0 YUV planar */ ! void ccvt_yuyv_420p(int width, int height, const void *src, void *dsty, void *dstu, void *dstv); ! ! /* RGB/BGR to 4:2:0 YUV interlaced */ ! ! /* RGB/BGR to 4:2:0 YUV planar */ ! void ccvt_rgb24_420p(int width, int height, const void *src, void *dsty, void *dstu, void *dstv); ! void ccvt_bgr24_420p(int width, int height, const void *src, void *dsty, void *dstu, void *dstv); ! ! /* RGB/BGR to RGB/BGR */ ! void ccvt_bgr24_bgr32(int width, int height, const void *const src, void *const dst); ! void ccvt_bgr24_rgb32(int width, int height, const void *const src, void *const dst); ! void ccvt_bgr32_bgr24(int width, int height, const void *const src, void *const dst); ! void ccvt_bgr32_rgb24(int width, int height, const void *const src, void *const dst); ! void ccvt_rgb24_bgr32(int width, int height, const void *const src, void *const dst); ! void ccvt_rgb24_rgb32(int width, int height, const void *const src, void *const dst); ! void ccvt_rgb32_bgr24(int width, int height, const void *const src, void *const dst); ! void ccvt_rgb32_rgb24(int width, int height, const void *const src, void *const dst); ! ! ! #ifdef __cplusplus ! } ! #endif ! ! #endif Index: Makefile.in =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/VideoLinuxV4L/Makefile.in,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.in 22 Nov 2004 02:32:40 -0000 1.2 --- Makefile.in 6 Dec 2006 00:37:23 -0000 1.3 *************** *** 22,26 **** # compilation control # ! LIBOBJS= ${LIB}(video.o) ${LIB}(ccvt_i386.o) all: ${LIBOBJS} --- 22,28 ---- # compilation control # ! # LIBOBJS= ${LIB}(video.o) ${LIB}(ccvt_i386.o) ! LIBOBJS= ${LIB}(@CCVT_OBJ@) ${LIB}(video.o) ! all: ${LIBOBJS} Index: video.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/VideoLinuxV4L/video.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** video.c 19 Sep 2006 03:12:45 -0000 1.8 --- video.c 6 Dec 2006 00:37:23 -0000 1.9 *************** *** 594,600 **** { ! ccvt_420p_bgr24(vid->width, vid->height, buf, buf+(vid->width*vid->height), buf+(vid->width*vid->height)+(vid->width*vid->height)/4, vid->videoBuffer); return vid->videoBuffer; } --- 594,604 ---- { ! /* ccvt_420p_bgr24(vid->width, vid->height, buf, buf+(vid->width*vid->height), buf+(vid->width*vid->height)+(vid->width*vid->height)/4, vid->videoBuffer); + */ + + ccvt_420p_bgr24(vid->width, vid->height, buf, vid->videoBuffer); + return vid->videoBuffer; } Index: ccvt_c.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/VideoLinuxV4L/ccvt_c.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ccvt_c.c 22 Nov 2004 02:32:40 -0000 1.1 --- ccvt_c.c 6 Dec 2006 00:37:23 -0000 1.2 *************** *** 1,199 **** ! /* ! Colour conversion routines (RGB <-> YUV) in plain C ! (C) 2000 Nemosoft Unv. nem...@sm... ! ! This program is free software; you can redistribute it and/or modify ! it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2 of the License, or ! (at your option) any later version. ! ! This program is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! GNU General Public License for more details. ! ! You should have received a copy of the GNU General Public License ! along with this program; if not, write to the Free Software ! Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ! */ ! ! ! #include "ccvt.h" ! ! #define PUSH_RGB24 1 ! #define PUSH_BGR24 2 ! #define PUSH_RGB32 3 ! #define PUSH_BGR32 4 ! ! /* This is a really simplistic approach. Speedups are welcomed. */ ! static void ccvt_420i(int width, int height, unsigned char *src, unsigned char *dst, int push) ! { ! int line, col, linewidth; ! int y, u, v, yy, vr, ug, vg, ub; ! int r, g, b; ! unsigned char *py, *pu, *pv; ! ! linewidth = width + (width >> 1); ! py = src; ! pu = py + 4; ! pv = pu + linewidth; ! ! y = *py++; ! yy = y << 8; ! u = *pu - 128; ! ug = 88 * u; ! ub = 454 * u; ! v = *pv - 128; ! vg = 183 * v; ! vr = 359 * v; ! ! /* The biggest problem is the interlaced data, and the fact that odd ! add even lines have V and U data, resp. ! */ ! for (line = 0; line < height; line++) { ! for (col = 0; col < width; col++) { ! r = (yy + vr) >> 8; ! g = (yy - ug - vg) >> 8; ! b = (yy + ub ) >> 8; ! ! switch(push) { ! case PUSH_RGB24: ! *dst++ = r; ! *dst++ = g; ! *dst++ = b; ! break; ! ! case PUSH_BGR24: ! *dst++ = b; ! *dst++ = g; ! *dst++ = r; ! break; ! ! case PUSH_RGB32: ! *dst++ = r; ! *dst++ = g; ! *dst++ = b; ! *dst++ = 0; ! break; ! ! case PUSH_BGR32: ! *dst++ = b; ! *dst++ = g; ! *dst++ = r; ! *dst++ = 0; ! break; ! } ! ! y = *py++; ! yy = y << 8; ! if ((col & 3) == 3) ! py += 2; // skip u/v ! if (col & 1) { ! if ((col & 3) == 3) { ! pu += 4; // skip y ! pv += 4; ! } ! else { ! pu++; ! pv++; ! } ! u = *pu - 128; ! ug = 88 * u; ! ub = 454 * u; ! v = *pv - 128; ! vg = 183 * v; ! vr = 359 * v; ! } ! } /* ..for col */ ! if (line & 1) { // odd line: go to next band ! pu += linewidth; ! pv += linewidth; ! } ! else { // rewind u/v pointers ! pu -= linewidth; ! pv -= linewidth; ! } ! } /* ..for line */ ! } ! ! void ccvt_420i_rgb24(int width, int height, void *src, void *dst) ! { ! ccvt_420i(width, height, (unsigned char *)src, (unsigned char *)dst, PUSH_RGB24); ! } ! ! void ccvt_420i_bgr24(int width, int height, void *src, void *dst) ! { ! ccvt_420i(width, height, (unsigned char *)src, (unsigned char *)dst, PUSH_BGR24); ! } ! ! void ccvt_420i_rgb32(int width, int height, void *src, void *dst) ! { ! ccvt_420i(width, height, (unsigned char *)src, (unsigned char *)dst, PUSH_RGB32); ! } ! ! void ccvt_420i_bgr32(int width, int height, void *src, void *dst) ! { ! ccvt_420i(width, height, (unsigned char *)src, (unsigned char *)dst, PUSH_BGR32); ! } ! ! ! void ccvt_420i_420p(int width, int height, void *src, void *dsty, void *dstu, void *dstv) ! { ! short *s, *dy, *du, *dv; ! int line, col; ! ! s = (short *)src; ! dy = (short *)dsty; ! du = (short *)dstu; ! dv = (short *)dstv; ! for (line = 0; line < height; line++) { ! for (col = 0; col < width; col += 4) { ! *dy++ = *s++; ! *dy++ = *s++; ! if (line & 1) ! *dv++ = *s++; ! else ! *du++ = *s++; ! } /* ..for col */ ! } /* ..for line */ ! } ! ! void ccvt_420i_yuyv(int width, int height, void *src, void *dst) ! { ! int line, col, linewidth; ! unsigned char *py, *pu, *pv, *d; ! ! linewidth = width + (width >> 1); ! py = (unsigned char *)src; ! pu = src + 4; ! pv = pu + linewidth; ! d = (unsigned char *)dst; ! ! for (line = 0; line < height; line++) { ! for (col = 0; col < width; col += 4) { ! /* four pixels in one go */ ! *d++ = *py++; ! *d++ = *pu++; ! *d++ = *py++; ! *d++ = *pv++; ! ! *d++ = *py++; ! *d++ = *pu++; ! *d++ = *py++; ! *d++ = *pv++; ! ! py += 2; ! pu += 4; ! pv += 4; ! } /* ..for col */ ! if (line & 1) { // odd line: go to next band ! pu += linewidth; ! pv += linewidth; ! } ! else { // rewind u/v pointers ! pu -= linewidth; ! pv -= linewidth; ! } ! } /* ..for line */ ! } ! --- 1,132 ---- ! /* CCVT: ColourConVerT: simple library for converting colourspaces ! Copyright (C) 2002 Nemosoft Unv. ! ! This program is free software; you can redistribute it and/or modify ! it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2 of the License, or ! (at your option) any later version. ! ! This program is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! GNU General Public License for more details. ! ! You should have received a copy of the GNU General Public License ! along with this program; if not, write to the Free Software ! Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ! ! For questions, remarks, patches, etc. for this program, the author can be ! reached at nem...@sm.... ! */ ! ! #include "ccvt.h" ! ! #define PUSH_RGB24 1 ! #define PUSH_BGR24 2 ! #define PUSH_RGB32 3 ! #define PUSH_BGR32 4 ! ! ! /* This is a simplistic approach. */ ! static void ccvt_420p(int width, int height, const unsigned char *src, unsigned char *dst, int push) ! { ! int line, col, linewidth; ! int y, u, v, yy, vr, ug, vg, ub; ! int r, g, b; ! const unsigned char *py, *pu, *pv; ! ! linewidth = width >> 1; ! py = src; ! pu = py + (width * height); ! pv = pu + (width * height) / 4; ! ! y = *py++; ! yy = y << 8; ! u = *pu - 128; ! ug = 88 * u; ! ub = 454 * u; ! v = *pv - 128; ! vg = 183 * v; ! vr = 359 * v; ! ! for (line = 0; line < height; line++) { ! for (col = 0; col < width; col++) { ! r = (yy + vr) >> 8; ! g = (yy - ug - vg) >> 8; ! b = (yy + ub ) >> 8; ! ! if (r < 0) r = 0; ! if (r > 255) r = 255; ! if (g < 0) g = 0; ! if (g > 255) g = 255; ! if (b < 0) b = 0; ! if (b > 255) b = 255; ! ! switch(push) { ! case PUSH_RGB24: ! *dst++ = r; ! *dst++ = g; ! *dst++ = b; ! break; ! ! case PUSH_BGR24: ! *dst++ = b; ! *dst++ = g; ! *dst++ = r; ! break; ! ! case PUSH_RGB32: ! *dst++ = r; ! *dst++ = g; ! *dst++ = b; ! *dst++ = 0; ! break; ! ! case PUSH_BGR32: ! *dst++ = b; ! *dst++ = g; ! *dst++ = r; ! *dst++ = 0; ! break; ! } ! ! y = *py++; ! yy = y << 8; ! if (col & 1) { ! pu++; ! pv++; ! ! u = *pu - 128; ! ug = 88 * u; ! ub = 454 * u; ! v = *pv - 128; ! vg = 183 * v; ! vr = 359 * v; ! } ! } /* ..for col */ ! if ((line & 1) == 0) { // even line: rewind ! pu -= linewidth; ! pv -= linewidth; ! } ! } /* ..for line */ ! } ! ! void ccvt_420p_rgb24(int width, int height, const void *src, void *dst) ! { ! ccvt_420p(width, height, (const unsigned char *)src, (unsigned char *)dst, PUSH_RGB24); ! } ! ! void ccvt_420p_bgr24(int width, int height, const void *src, void *dst) ! { ! ccvt_420p(width, height, (const unsigned char *)src, (unsigned char *)dst, PUSH_BGR24); ! } ! ! void ccvt_420p_rgb32(int width, int height, const void *src, void *dst) ! { ! ccvt_420p(width, height, (const unsigned char *)src, (unsigned char *)dst, PUSH_RGB32); ! } ! ! void ccvt_420p_bgr32(int width, int height, const void *src, void *dst) ! { ! ccvt_420p(width, height, (const unsigned char *)src, (unsigned char *)dst, PUSH_BGR32); ! } |
From: Hartmut S. <ret...@us...> - 2006-12-06 00:37:28
|
Update of /cvsroot/artoolkit/artoolkit In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv11928 Modified Files: Configure Log Message: - Added an updated CCVT version which hopefully will work as expected on x64 systems. Index: Configure =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/Configure,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Configure 18 Sep 2006 04:52:15 -0000 1.10 --- Configure 6 Dec 2006 00:37:23 -0000 1.11 *************** *** 41,44 **** --- 41,58 ---- if [ "$ANS" = "1" ] then + echo + echo "Color conversion should use x86 assembly (choose 'n' for 64bit systems)?" + echo -n "Enter : " + read ANS + if [ "$ANS" = "y" ] + then + CCVT_OBJ="ccvt_i386.o" + elif [ "$ANS" = "n" ] + then + CCVT_OBJ="ccvt_c.o" + else + echo "Please enter y or n." + exit 0 + fi VIDEO_DRIVER="VideoLinuxV4L" CFLAG="-O -I/usr/X11R6/include" *************** *** 50,53 **** --- 64,81 ---- elif [ "$ANS" = "2" ] then + echo + echo "Color conversion should use x86 assembly (not working for 64bit)?" + echo -n "Enter : " + read ANS + if [ "$ANS" = "y" ] + then + CCVT_OBJ="ccvt_i386.o" + elif [ "$ANS" = "n" ] + then + CCVT_OBJ="ccvt_c.o" + else + echo "Please enter y or n." + exit 0 + fi VIDEO_DRIVER="VideoLinuxV4L" CFLAG="-O -I/usr/X11R6/include -DUSE_EYETOY" *************** *** 177,180 **** --- 205,210 ---- echo $LIBS | sed -e 's/\//\\\//g' >$SED LIBS=`cat $SED` + echo $CCVT_OBJ | sed -e 's/\//\\\//g' >$SED + CCVT_OBJ=`cat $SED` cat > $SED <<EOF *************** *** 185,188 **** --- 215,219 ---- s/@RANLIB@/$RANLIB/ s/@LIBS@/$LIBS/ + s/@CCVT_OBJ@/$CCVT_OBJ/ EOF |
From: Philip L. <phi...@us...> - 2006-11-19 21:21:25
|
Update of /cvsroot/artoolkit/artoolkit In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv11106 Modified Files: README.txt Log Message: Adjust default Mac pixel format. Index: README.txt =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/README.txt,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** README.txt 19 Nov 2006 19:39:21 -0000 1.26 --- README.txt 19 Nov 2006 21:21:21 -0000 1.27 *************** *** 172,175 **** --- 172,176 ---- - The Mac video library does not yet use the new QuickTime 7 video pipeline. - Changing the pixel format requires recompilation of libAR. This problem is solved in ARToolKit Professional v4 (commercially-licensed). + - The Mac default pixel format has been changed back to ARGB for compatibility with the OSGART project release. |