summaryrefslogtreecommitdiffstats
path: root/o3d/samples
Commit message (Collapse)AuthorAgeFilesLines
* This change removes CG from O3D and uses GLSLgman@chromium.org2010-01-084-0/+1091
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | instead of HLSL. The current "hack" for shaders is that the shader string you supply to Effect::LoadFromFXString requires the lines // #o3d SplitMarker \n" Above which is the vertex shader and below which is the fragment shader. Since GLSL has no semantics the names are used for semantics so to get an automatically supplied worldViewProjection you must name the uniform worldViewProjection as in uniform mat4 worldViewProjection Similarly for attributes (vertex streams) you must name them to match O3D semantics as in attribute vec4 texcoord1 attribute vec3 normal etc. Included in this is one working sample in o3d/samples/hellocube-glsl.html Other things: Added a glsl field to clientInfo so that a program can check if it needs to supply GLSL or HLSL. eg client.clientInfo.glsl == true Updated the O3D libraries to store that info in o3djs.base.glsl so that the libaries can be modified to supply GLSL if we want. Note: To run this on windows you must copy glew32.dll and glut32.dll to <AppData>...\Mozilla\plugins To get this to actually work in GLES2 will require (*) renaming a few functions (*) telling O3D there is no NPOT support or if possible no NPOT support unless the texture has only 1 level. (*) removing LargeGeometry and FloatingPointTexture support. (*) Making it link with the GLES2 code Review URL: http://codereview.chromium.org/527028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35845 0039d316-1c4b-4281-b951-d872f2087c98
* Fix Terence's namegman@google.com2010-01-061-1/+1
| | | | | | Review URL: http://codereview.chromium.org/515038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35621 0039d316-1c4b-4281-b951-d872f2087c98
* Step 1 in Adding GLES2 renderer to O3D.gman@google.com2009-12-161-0/+1
| | | | | | | | | | | | | | | | | | | | | This step does only copies the GL files to a GLES2 folder. It's still actually the GL renderer at this point but it's the smallest step for getting something that builds and a place to start working. The next step will be to rename all the classes from xxxGL to xxxGLES2 At some point CG will be removed as well One other thing slipped in there. A standalone build path to help generate a C++ only example of using O3D. It's currently only a placeholder. Review URL: http://codereview.chromium.org/500070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34744 0039d316-1c4b-4281-b951-d872f2087c98
* Clean up the rendering of manipulators.simonrad@chromium.org2009-12-121-108/+240
| | | | | | | | | | | | Creates a consistent setup for the shaders. Allows us to use phong or constant shaders or both, and still do highlighting correctly. BUG=none TEST=none Review URL: http://codereview.chromium.org/492026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34416 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor the manipulator samples so that the common javascript code is ↵simonrad@chromium.org2009-12-114-756/+312
| | | | | | | | | | | | | | | included from a js file. There is only one function that is specialized for each sample. The function is referenced in the js file but not defined. It is then defined in each html file. R=kbr BUG=none TEST=none Review URL: http://codereview.chromium.org/487019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34312 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for O3Djs build break.simonrad@chromium.org2009-12-101-3/+8
| | | | | | | | | | | tbr=kbr BUG=none TEST=none Review URL: http://codereview.chromium.org/487013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34266 0039d316-1c4b-4281-b951-d872f2087c98
* Add line stippling and add functionality to the CameraController.simonrad@chromium.org2009-12-106-172/+406
| | | | | | | | | | | | - Added optional line stippling based on texCoords to the rotate1 line ring shader. - Redesigned the CameraController and added the ability to zoom, dolly, dolly-zoom, and pan using the mouse. BUG=none TEST=none Review URL: http://codereview.chromium.org/486003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34235 0039d316-1c4b-4281-b951-d872f2087c98
* Add obscured / unobscured rendering togman@chromium.org2009-12-054-169/+215
| | | | | | | | | | | | | | | manipulators. I only did it on the rotate1 manipulators because it was easy. On the translate ones you either need to put each shape on it's own transform so you can set the parameters different or you need the materials to use different named parameters. Review URL: http://codereview.chromium.org/463025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33900 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes the compiled o3djs libraries.gman@chromium.org2009-12-041-1/+1
| | | | | | | | | | | | | | | | | | | | The issue was that lineprimitves.js creates an object that inherits from something in primitives.js but because it appeared first in the compiled version the inherit command failed since the object it inherited from was not yet defined. It might be possible to make build_docs.py move all the inherit commands to the end of the compiled o3djs libs. I'll have to look into it. In the meantime here is a manual fix. Review URL: http://codereview.chromium.org/464030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33773 0039d316-1c4b-4281-b951-d872f2087c98
* Creates a CameraController class, and makes the Rotate1 manipulator use line ↵simonrad@chromium.org2009-12-036-158/+675
| | | | | | | | | | | | | | | | | geometry. - Creates a basic CameraController class. It allows the user to rotate the camera around a center position using the mouse, and outputs a view matrix. - Changes the Rotate1 manipulator to display as line geometry. Adds a line ring primitive and a special shader. - Merges changes to Rotate1 sample into Translate1+2 samples as well. We probably should refactor the samples so we don't have duplicate code. R=gman,kbr BUG=none TEST=none Review URL: http://codereview.chromium.org/465023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33747 0039d316-1c4b-4281-b951-d872f2087c98
* TBR=kbr@google.comgman@chromium.org2009-12-031-5/+5
| | | | | | | | I missed one of your comments in the last CL Review URL: http://codereview.chromium.org/464009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33636 0039d316-1c4b-4281-b951-d872f2087c98
* Updates the picking library to have a PickManager andgman@chromium.org2009-12-038-128/+307
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | support both not picking invisible objects and the option to pick even if invisible. The idea is you can do something like this // Make a picking manager var pm = o3djs.picking.createPickManager(rootTransform); ... // add a bunch of transforms. // generate picking objects. pm.update(); // Get the picking object that was created for some specific transform var info = pm.getTransformInfo(someTransform); // Set properties on that object related to picking info.pickEvenIfInvisible = true; I think this is just a first step. How an object should be defined as pickable is up for debate. As it is, you can basically override info.isPickable. as in info.isPickable = function() { // do something custom. } You can also start adding things easier like info.onPick = function() { // do something. } and then write code like info = pm.pick(worldRay); if (info) { info.onPick(); } While you could have done that before there was no easy way to find a the TransformInfo for a specific Transform. Now you can use PickManager.getTransformInfo Review URL: http://codereview.chromium.org/452027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33632 0039d316-1c4b-4281-b951-d872f2087c98
* TBR=kbr@google.comgman@chromium.org2009-12-012-2/+2
| | | | | | | | | Fix for last CL I was testing in the wrong client :-( git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33388 0039d316-1c4b-4281-b951-d872f2087c98
* Make primitives and lineprimitives sharegman@chromium.org2009-11-302-131/+111
| | | | | | | | the implemtation of createShape Review URL: http://codereview.chromium.org/453010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33367 0039d316-1c4b-4281-b951-d872f2087c98
* Separate the line primitive stuff out of debug.jsgman@chromium.org2009-11-254-426/+491
| | | | | | | | | | | and into lineprimitives.js. I refactored to code to share a lot of stuff with primitive.js. Review URL: http://codereview.chromium.org/435039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33041 0039d316-1c4b-4281-b951-d872f2087c98
* Update the manipulator rotate1 example to usegman@chromium.org2009-11-254-76/+151
| | | | | | | | | | | | | | | | | | | | a separate transform graph and render graph from the main scene's. two more things 1) added a scale to one transform in the scene to show an issue with manipulators that might need to be fixed 2) changed the material used by the manipulators to be constant. This is on the path to making the manipulators be line primitives instead of geometry. Review URL: http://codereview.chromium.org/434060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33040 0039d316-1c4b-4281-b951-d872f2087c98
* Added new way of dragging the Rotate1 manipulator (linear mapping in screen ↵simonrad@chromium.org2009-11-242-60/+119
| | | | | | | | | | | space). BUG=none TEST=none Review URL: http://codereview.chromium.org/413007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32958 0039d316-1c4b-4281-b951-d872f2087c98
* Added torus primitive and Rotate1 manipulator.simonrad@chromium.org2009-11-203-34/+556
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/395012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32596 0039d316-1c4b-4281-b951-d872f2087c98
* Created o3djs Plane and Translate2 classes.simonrad@chromium.org2009-11-122-91/+731
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/382001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31841 0039d316-1c4b-4281-b951-d872f2087c98
* Made all line endings consistently LF and added svn:eol-style=LF property to ↵apatrick@google.com2009-11-1211-5395/+5395
| | | | | | | | | | | | | | | | | | | | | | | | | | files with these names / extensions. c cc h mm txt idl py js html css gyp gypi xml shader json htm README DEPS git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31811 0039d316-1c4b-4281-b951-d872f2087c98
* linux: 64-bitpiman@google.com2009-11-111-7/+2
| | | | | | | | | | | This CL enables a 64-bit of linux. Set target_arch='x64' in the gyp defines to enable. - fixes a few 64-bit issues - fixes some linux build issues on scons vs make - add rules to build 64-bit version Review URL: http://codereview.chromium.org/371078 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31642 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "linux: 64-bit"piman@google.com2009-11-071-2/+7
| | | | | | | | This reverts svn://chrome-svn/chrome/trunk/src/o3d@31356 Review URL: http://codereview.chromium.org/372043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31364 0039d316-1c4b-4281-b951-d872f2087c98
* linux: 64-bitpiman@google.com2009-11-071-7/+2
| | | | | | | | | | | This CL enables a 64-bit of linux. Set target_arch='x64' in the gyp defines to enable. - fixes a few 64-bit issues - fixes some linux build issues on scons vs make - add rules to build 64-bit version Review URL: http://codereview.chromium.org/376010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31356 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for build.gman@google.com2009-11-041-1/+1
| | | | | | | | | | The if was wrong. If the jscompiler exists we DON'T want the non-compiled files. Review URL: http://codereview.chromium.org/342108 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30895 0039d316-1c4b-4281-b951-d872f2087c98
* Change build to only have one place to listgman@google.com2009-11-033-245/+220
| | | | | | | | | o3djs files and build / selenium to use compiled o3djs libs. Review URL: http://codereview.chromium.org/353017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30838 0039d316-1c4b-4281-b951-d872f2087c98
* Put back some scons files that the docs build parses, but rename themgspencer@google.com2009-11-031-0/+63
| | | | | | | | | with ".manifest", since we no longer have a scons build. We should probably change the code that parses these to be simpler someday. Review URL: http://codereview.chromium.org/341073 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30774 0039d316-1c4b-4281-b951-d872f2087c98
* This change kills the SCons build, since we have switched completelygspencer@google.com2009-11-022-415/+0
| | | | | | | | | over to GYP. It also copies the contents of DEPS_gyp to DEPS, and removes the DEPS_gyp file. Review URL: http://codereview.chromium.org/354011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30729 0039d316-1c4b-4281-b951-d872f2087c98
* Adding lib path to glew to invocation of converter.bradnelson@google.com2009-10-241-1/+5
| | | | | | | | | | | | This seems to be needed for 64-bit. BUG=None TEST=None TBR=gman Review URL: http://codereview.chromium.org/328021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30013 0039d316-1c4b-4281-b951-d872f2087c98
* Fix beach demo strafe.gman@google.com2009-10-241-1/+1
| | | | | | Review URL: http://codereview.chromium.org/328019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29974 0039d316-1c4b-4281-b951-d872f2087c98
* Remove waterdemo samples from build as they havegman@google.com2009-10-231-9/+0
| | | | | | | | been removed from svn Review URL: http://codereview.chromium.org/319004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29925 0039d316-1c4b-4281-b951-d872f2087c98
* Fix bugs in rendergraph.jsgman@google.com2009-10-201-2/+2
| | | | | | | | DrawPassInfo.destroy was not correctly deleting things. Review URL: http://codereview.chromium.org/297016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29567 0039d316-1c4b-4281-b951-d872f2087c98
* Remove +x bit from files that shouldn't have it.evan@chromium.org2009-10-201-0/+0
| | | | | | Review URL: http://codereview.chromium.org/307007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29548 0039d316-1c4b-4281-b951-d872f2087c98
* Removed workaround for Chrome 1.0 from o3djs library.apatrick@google.com2009-10-193-105/+65
| | | | | | | | Fix big causing Canvas sample to crash. Review URL: http://codereview.chromium.org/303008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29477 0039d316-1c4b-4281-b951-d872f2087c98
* Remove pack from calls to texture.getRenderSurfacegman@google.com2009-10-155-6/+6
| | | | | | | | as that has been deprecated. Review URL: http://codereview.chromium.org/274042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29070 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for canvas.drawBitmapgman@google.com2009-10-123-5/+7
| | | | | | Review URL: http://codereview.chromium.org/269055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28741 0039d316-1c4b-4281-b951-d872f2087c98
* Drastically improves selenium testing performance with IE by using ids for ↵kkania@google.com2009-10-081-12/+24
| | | | | | | | input elements. Review URL: http://codereview.chromium.org/271023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28421 0039d316-1c4b-4281-b951-d872f2087c98
* Further doc improvements for Line_.closestPointToRay() based onkbr@google.com2009-10-061-11/+10
| | | | | | | | comments in http://codereview.chromium.org/251097 . Review URL: http://codereview.chromium.org/243111 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28181 0039d316-1c4b-4281-b951-d872f2087c98
* This makes some changes to the o3d tree in preparationgspencer@google.com2009-10-061-183/+0
| | | | | | | | | | | | | | | | | | | | | | | | for landing in Chrome. The biggest pieces here are moving some of the third party dependencies back into o3d/third_party because they need to be distinct from the chrome versions of the same packages, and because O3D is the only one using the dependency. (NPAPI in particular). Also the plugin gyp file is now modified so that it can handle being part of both a chrome developer tree and an o3d developer tree (in the latter case, it generates the plugin and installer, in the former it does not) BE AWARE that this change will change the main solution/xcodebuild file from "build/all" to be "build/o3d", but rebuilding from gyp files will NOT remove the old "build/all" one, so you might be tricked into opening the wrong one. Review URL: http://codereview.chromium.org/256081 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28169 0039d316-1c4b-4281-b951-d872f2087c98
* Improved documentation for the derivation of Line_.closestPointToRay().kbr@google.com2009-10-061-1/+41
| | | | | | Review URL: http://codereview.chromium.org/251097 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28132 0039d316-1c4b-4281-b951-d872f2087c98
* Add comments setting emacs and vim tab width and expansion variables.sgk@google.com2009-10-061-0/+6
| | | | | | | | BUG=none TEST=successful builds Review URL: http://codereview.chromium.org/256059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28089 0039d316-1c4b-4281-b951-d872f2087c98
* This fixes the comments in the bitmap example to match reality,gspencer@google.com2009-10-011-25/+37
| | | | | | | and tweaks some values. Review URL: http://codereview.chromium.org/242087 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27693 0039d316-1c4b-4281-b951-d872f2087c98
* Fixing bug #152 (pressing "T" doens't leave a trail in the particle samples ↵vangelis@google.com2009-09-262-6/+6
| | | | | | | | | | | | only in Chrome). The problem had to do with the translation of the key codes. There's another issue that surfaced with the event.js code in IE when the events are handled by methods running in V8. In that situation it appears that event.keyIdentifier isn't actually a string and IE barfs when we call keyIdent.indexOf(). I added a check to make sure it's a string but I don't know if the fix really belongs somewhere in the V8 / IE bridge Review URL: http://codereview.chromium.org/218002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27308 0039d316-1c4b-4281-b951-d872f2087c98
* A bunch of jscompiler fixes including updating togman@google.com2009-09-106-21/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the latest jscompiler. There were a few issues. For some reason o3djs.math.matrix4 was not working in ff3.0 when compiled. I spent about 8 hours trying to reproduce the issue in a small case but had no luck. I finally just tried changing original code and it work. In the process of trying to figure that out I got the latest jscompiler and found there were a bunch of other problems with our js code which are now fixed. Also found out I was incorrectly striping @o3dparameter tags from our code in build_docs.py Also, I learned that properties of objects are strings when returned in an "in" statement as in for (key in object) key is a string regardless of what each key is in object. Review URL: http://codereview.chromium.org/200089 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25944 0039d316-1c4b-4281-b951-d872f2087c98
* remove bad trailing commagman@google.com2009-09-041-2/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25547 0039d316-1c4b-4281-b951-d872f2087c98
* Adding a no-binary path to the o3dConvertergman@google.com2009-09-041-40/+85
| | | | | | | | | | | | | | | | and deserializer. This CL still creates a o3dtgz file, it's just that buffers, skins and curves are stored in JSON instead of binary. I'm not sure how useful this is but it seemed like a possible short cut to testing out some stuff. Another CL will add some flag so there is no gzipped tar file, just the json. Review URL: http://codereview.chromium.org/189003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25523 0039d316-1c4b-4281-b951-d872f2087c98
* This adds in targets for selenium and updated several other problems,gspencer@google.com2009-09-042-188/+235
| | | | | | | | | | | including some problems with the samples and idl generation. Selenium targets launch selenium on all platforms, but the tests don't pass anywhere but Windows yet because the plugin isn't found. I'll work on that next. Review URL: http://codereview.chromium.org/197014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25467 0039d316-1c4b-4281-b951-d872f2087c98
* Beginnings of direct manipulator support in o3djs library. Addedkbr@google.com2009-09-024-5/+1202
| | | | | | | | | | | | | Translate1 manipulator, which implements dragging along a line, and helper and base classes. This is a work in progress; feedback appreciated. Fixed problem in recently changed documentation in primitives.js. Minor documentation cleanup in primitives.html. Review URL: http://codereview.chromium.org/178044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25152 0039d316-1c4b-4281-b951-d872f2087c98
* Update samples to use more utility functions wheregman@google.com2009-09-0127-627/+204
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | appropriate. A few places used pseudoRandom. That is in math.js now so they use that. Other places there is now o3djs.material.createBasicMaterial and o3djs.material.createMaterialFromFile that save 10-20 lines per sample. This CL will require new reference images. There are 2 other things I'd like to consider. #1) Changing every sample that uses shaders/texture-only.shader to use o3djs.material.createConstantMaterial or some variation. The problem with o3djs.material.createConstantMaterial is it requires you pass it a texture if you want a constant textured material. All the samples create the material first, then later add the texture. So, I could add a new o3djs.material.createTextureOnlyMaterial. At the same time that would mean changing those samples from setting stuff on 'texSampler0' to 'emissive' #2) I'd like to change the shader builder so it stops adding "Sampler" to textured materials. As it is if the material uses a color it makes the param called "diffuse" but if it's a texture it makes it "diffuseSampler". That sucks because it means the code has to do crap like var param = material.getParam('diffuse'); if (param) { // it's a color } else { param = material.getParam('diffuseSampler'); if (param) { // it's a texture. } } If we stopped that silliness we could just do var param = material.getParam('diffuse'); if (param) { if (param.isA('o3d.ParamTexture')) { // it's textured. } else { // it's not. } } Unfortunately to fix this requires changing the o3dConverter as well since it uses those conventions. Should we do this? Review URL: http://codereview.chromium.org/182024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25015 0039d316-1c4b-4281-b951-d872f2087c98
* Bump version to 0.1.42gman@google.com2009-08-281-1/+1
| | | | | | | | | | This is partly so video can distinguish between 0.1.41 which they pushed internally and 0.1.42 which will be our next push. Review URL: http://codereview.chromium.org/179015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24782 0039d316-1c4b-4281-b951-d872f2087c98
* bug fixgman@google.com2009-08-271-1/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24592 0039d316-1c4b-4281-b951-d872f2087c98