summaryrefslogtreecommitdiffstats
path: root/o3d
Commit message (Collapse)AuthorAgeFilesLines
* Implemented Texture2D.drawImage, along the way cleaned up a number of ↵petersont@google.com2010-03-2214-85/+215
| | | | | | | | lingering bugs, moved some texture initialization so subsequent calls to gl.texSubImage2D wouldn't fail. Review URL: http://codereview.chromium.org/1092003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42277 0039d316-1c4b-4281-b951-d872f2087c98
* Bump GYP dep to get fixes for escaping/quoting in 'defines'.tschmelcher@chromium.org2010-03-201-1/+1
| | | | | | | | | TEST=built on Linux BUG=none Review URL: http://codereview.chromium.org/1125005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42180 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: link with --as-needed to eliminate direct dependencies on 15 shared ↵tschmelcher@chromium.org2010-03-191-6/+20
| | | | | | | | | | | libraries that we don't actually use. TEST=built on Linux and ran it BUG=none Review URL: http://codereview.chromium.org/1072008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42173 0039d316-1c4b-4281-b951-d872f2087c98
* Added textures, texture samplers and render targets to o3d-webgl. Also ↵petersont@google.com2010-03-1236-201/+2246
| | | | | | | | fixed bugs, added calls to parent class constructor to classes that didn't have them before, added a few demos to exhibit/test textures and render surfaces. Review URL: http://codereview.chromium.org/856004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41482 0039d316-1c4b-4281-b951-d872f2087c98
* Added support for O3D in Chrome on Mac OS X using CoreGraphics drawingkbr@chromium.org2010-03-1119-66/+429
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | model by rendering offscreen, reading back the frame buffer, and drawing the rendering results into the CGContextRef. This code path is currently Chrome-specific, but could be used for any browser with similar characteristics. This will require refactoring of the drawing and event model selection code, which may be done in a subsequent bug. Changed the RenderSurface APIs to allow the Bitmap for readback to be passed in. Added Client::SetOffscreenRenderingSurfaces so that the entry point Client::RenderClient() can be used unchanged. Fixed problem with plugin_enable_fullscreen_msg gyp variable which needs to be in top-level gypi so #define is consistent throughout project. Fixed minor issue in Cocoa key event handling. Fixed log message causing crashes when render target attachment fails. Chrome currently blacklists the O3D plugin's MIME type, so to enable support for O3D this blacklist entry needs to be removed from Chrome. Ran nearly all O3D samples in Chrome on Mac OS X. There are a couple of failures which will be fixed in subsequent bugs. Also ran samples in Safari and Firefox on Mac and verified no performance regressions. BUG=http://code.google.com/p/o3d/issues/detail?id=215 TEST=ran O3D samples in Chrome, Safari and Firefox Review URL: http://codereview.chromium.org/669220 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41233 0039d316-1c4b-4281-b951-d872f2087c98
* Corrected the mismatch between the dimensions of vectors and matrices. The ↵alokp@chromium.org2010-03-103-5/+5
| | | | | | | | binary operations between vectors and matrices require that the dimensions match. Review URL: http://codereview.chromium.org/766001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41163 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Fix build break in r40786 due to file not ending with a newline. ↵tschmelcher@chromium.org2010-03-052-2/+2
| | | | | | | | | | | (Don't know why the trybot didn't catch that ...) Also fix a GCC signedness warning when compiling the domain whitelist code. TEST=built on Linux BUG=none Review URL: http://codereview.chromium.org/669206 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40792 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce two new GYP variables:tschmelcher@chromium.org2010-03-0514-8/+327
| | | | | | | | | | | | | 1) plugin_domain_whitelist, which sets an optional domain whitelist. If specified, websites not in the list can't use the plugin. 2) plugin_enable_fullscreen_msg, which can be optionally unset to disable the Win/Mac fullscreen message. Also fix a bug in NPPluginProxy that this uncovered. TEST=built on Windows with a whitelist and without fullscreen message and verified correct behaviour in both IE and FF. Also, the whitelist logic comes almost verbatim from another Google product where it is already well-tested BUG=none Review URL: http://codereview.chromium.org/668078 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40786 0039d316-1c4b-4281-b951-d872f2087c98
* Added support for increasing the polygon offset with each successivekbr@google.com2010-03-034-11/+116
| | | | | | | | | | | | | | | | path parsed by the SVG loader. This allows the SVG butterfly sample to begin rendering, but there are still bugs in the orientation determination for some of the contours. In SVG loader, implemented scale function and fixed problem in the handling of tokens while parsing paths' data. BUG=none TEST=svg_butterfly.html Review URL: http://codereview.chromium.org/664005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40531 0039d316-1c4b-4281-b951-d872f2087c98
* Revert my change to the O3D plugin's description format, since it breaks the ↵tschmelcher@chromium.org2010-03-021-1/+1
| | | | | | | | | | | logic in o3djs.util.requiredVersionAvailable(). TEST=built and ran ping pong sample on Linux BUG=none Review URL: http://codereview.chromium.org/660019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40427 0039d316-1c4b-4281-b951-d872f2087c98
* When an o3d window does not belong to any monitor (off screen), instead of ↵zmo@google.com2010-03-011-7/+1
| | | | | | | | failing, use the default monitor/adapter instead. Review URL: http://codereview.chromium.org/661300 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40311 0039d316-1c4b-4281-b951-d872f2087c98
* Fix minor issues for some tests, and disable others.kkania@google.com2010-03-014-8/+16
| | | | | | Review URL: http://codereview.chromium.org/660152 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40309 0039d316-1c4b-4281-b951-d872f2087c98
* Incorporating change missed in previous CLkbr@chromium.org2010-02-271-2/+2
| | | | | | | | (http://codereview.chromium.org/652016). Review URL: http://codereview.chromium.org/661232 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40191 0039d316-1c4b-4281-b951-d872f2087c98
* First check in of the o3d implimentation in webgl. Classes work well enough ↵petersont@google.com2010-02-2640-0/+8656
| | | | | | | | to run the hellocube sample. Review URL: http://codereview.chromium.org/561026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40133 0039d316-1c4b-4281-b951-d872f2087c98
* Thanks to apatrick, added missing support to GLSL ES grammar forkbr@chromium.org2010-02-2624-15/+746
| | | | | | | | | | | | | | | user-defined types in constructor calls and type names. Allows declarations of uniforms of struct types to parse. Added all shaders from WebGL demos; all parse successfully. Fixed Ant build targets. Attempted to make same changes to Bison version of grammar, but it is not working well (failing to parse some function calls the ANTLR version handles). Leaving it functionally unchanged. Cleaned up comments. Review URL: http://codereview.chromium.org/660160 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40129 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed uninitialized variables breaking Linux build after checkin ofkbr@google.com2010-02-261-3/+3
| | | | | | | | | | | | http://codereview.chromium.org/652016 . BUG=none TEST=built and tested on Linux TBR=gman Review URL: http://codereview.chromium.org/661143 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40084 0039d316-1c4b-4281-b951-d872f2087c98
* Added the bulk of the algorithm for GPU accelerated 2D vector curvekbr@chromium.org2010-02-2639-23/+5909
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rendering from "Rendering Vector Art on the GPU" by Loop and Blinn, GPU Gems 3, Chapter 25. The main entry point to the algorithm is the PathProcessor, which takes in a Skia path and converts it to two triangle meshes: one for the exterior region of the shape containing the curve segments, and one for the interior region of the shape which is filled with constant (1.0) alpha. The o3d.ProcessedPath class is the internal object which exposes the needed entry points to JavaScript. However, o3djs.gpu2d is the user-level entry point to the algorithm. This exposes a Path primitive to which line, quadratic curve and cubic curve segments can be added, and simple fills (currently only a solid color). An SVG loader in samples/gpu2d/svgloader.js illustrates how content might be imported at run time. Several samples and regression tests demonstrate the current state of the implementation. More work is planned. Some small generalizations to the O3D code were necessary to support two-dimensional vertices. Note that I plan to submit gpu2d.js and/or svgloader.js for JavaScript readability. I have run both through the JS compiler and have fixed as many of the doc generation errors as possible in svgloader.js without pulling this file into the o3djs namespace. Tested in O3D on Windows and Mac OS X. BUG=none TEST=various SVG based tests Review URL: http://codereview.chromium.org/652016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40079 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: make sure the fullscreen window always gets focustschmelcher@chromium.org2010-02-222-3/+11
| | | | | | | | | TEST=tested fullscreen on Linux with metacity, metacity + focus-follows-mouse, compiz, compiz + focus-follows-mouse BUG=none Review URL: http://codereview.chromium.org/652076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39651 0039d316-1c4b-4281-b951-d872f2087c98
* Make ActiveX CLSIDs and names into overridable variables too. Also make the ↵tschmelcher@chromium.org2010-02-2216-93/+265
| | | | | | | | | | | NPAPI plugin's filename overridable, since that's needed too in order to fully re-brand the NPAPI plugin. TEST=built on Windows with branding overrides and verified that the product worked in both FF 3.6 and IE7 with similarly modified JavaScript code BUG=none Review URL: http://codereview.chromium.org/646071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39630 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Implement cursor type NONE. Also ensure fullscreen windows are ↵tschmelcher@chromium.org2010-02-192-7/+39
| | | | | | | | created on the same X11 screen as the embedded window. Review URL: http://codereview.chromium.org/651066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39507 0039d316-1c4b-4281-b951-d872f2087c98
* Set the correct content window parameters for the "soft" fullscreen mode:zmo@google.com2010-02-191-1/+9
| | | | | | | | 1) make the window "topmost" (but still won't overide TaskManager) 2) add the ex-style of WS_EX_TOOLWINDOW so the content window won't show in the TaskBar when in "soft" fullscreen mode. Otherwise it shows, and when you click on it or press ctrl-del-alt, o3d will get out of fullscreen mode, but this content window will linger in the TaskBar. Review URL: http://codereview.chromium.org/651003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39500 0039d316-1c4b-4281-b951-d872f2087c98
* Added viewAll method to CameraController.kbr@chromium.org2010-02-191-2/+67
| | | | | | Review URL: http://codereview.chromium.org/651049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39475 0039d316-1c4b-4281-b951-d872f2087c98
* Requesting C++ readability review for these classes and unit tests.kbr@chromium.org2010-02-196-107/+102
| | | | | | | | | | | | | The arena allocator is designed for optimized allocation and deallocation of small temporary objects, and is used by the augmentable red-black tree. In a subsequent checkin, the red-black tree will be augmented into an interval tree, which is a key data structure for efficient implementation of one of the algorithms in the forthcoming code in this directory. Review URL: http://codereview.chromium.org/596093 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39414 0039d316-1c4b-4281-b951-d872f2087c98
* Added a specialized triangulator which creates triangles filling thekbr@chromium.org2010-02-196-0/+808
| | | | | | | | | | | | | | convex hull of the four control points of a cubic curve segment. It also computes a path along the filled side of the curve segment, which will be used to fill the interior region of closed shapes with a general tessellation algorithm. BUG=none TEST=LocalTriangulatorTest Review URL: http://codereview.chromium.org/646048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39413 0039d316-1c4b-4281-b951-d872f2087c98
* Added computation of three-dimensional texture coordinates for thekbr@chromium.org2010-02-183-0/+289
| | | | | | | | | | | | | | | | control points of cubic curves. It's difficult if not impossible to write a unit test for this part of the algorithm, since the texture coordinates aren't precisely defined for any particular inputs. The forthcoming system tests will exercise these code paths. BUG=none TEST=none Review URL: http://codereview.chromium.org/647041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39386 0039d316-1c4b-4281-b951-d872f2087c98
* Added classifier which determines the type of a cubic curve input.kbr@chromium.org2010-02-185-0/+419
| | | | | | | | | | | | Its output will be used by the forthcoming texture coordinate generator. BUG=none TEST=CubicClassifierTest Review URL: http://codereview.chromium.org/626015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39373 0039d316-1c4b-4281-b951-d872f2087c98
* This fixes a bug in the 2d particle shader that madegman@chromium.org2010-02-181-2/+3
| | | | | | | | them ignore transform orientation. Review URL: http://codereview.chromium.org/647008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39370 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed regression caused by http://codereview.chromium.org/599012 wherekbr@chromium.org2010-02-171-1/+1
| | | | | | | | | | | O3D plugin is not detected on Mac OS X (at least). BUG=none TEST=none (ran O3D in Safari) Review URL: http://codereview.chromium.org/631005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39299 0039d316-1c4b-4281-b951-d872f2087c98
* Added interval tree data structure and unit tests. This is built onkbr@chromium.org2010-02-173-0/+498
| | | | | | | | | the red/black tree and is a key data structure in one of the forthcoming algorithms in this code. Review URL: http://codereview.chromium.org/594048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39284 0039d316-1c4b-4281-b951-d872f2087c98
* Re-applying patch from http://codereview.chromium.org/606005 .zmo@google.com2010-02-162-4/+33
| | | | | | | | Already reviewed by Vangelis. Review URL: http://codereview.chromium.org/609006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39114 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting files back to known good state. Will re-applyzmo@google.com2010-02-162-244/+113
| | | | | | | | | | http://codereview.chromium.org/606005 afterward. TBR=vangelis Review URL: http://codereview.chromium.org/609005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39113 0039d316-1c4b-4281-b951-d872f2087c98
* Make plugin name and mimetype into overridable GYP variables, so that third ↵tschmelcher@chromium.org2010-02-162-20/+22
| | | | | | | | | | | | | parties can more easily redistribute the O3D NPAPI plugin under a different brand. Analogous change for the ActiveX plugin will be in a forthcoming CL. TEST=built on Linux with various overridden values and checked that about:plugins showed the right thing; trybots BUG=none Review URL: http://codereview.chromium.org/599012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39109 0039d316-1c4b-4281-b951-d872f2087c98
* Fix the software renderer "soft" fullscreen mode using the wrong monitor bug.zmo@google.com2010-02-162-113/+244
| | | | | | Review URL: http://codereview.chromium.org/606005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39107 0039d316-1c4b-4281-b951-d872f2087c98
* Clone of issue 598075. See: http://codereview.chromium.org/598075twiz@google.com2010-02-127-84/+7
| | | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/593083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38936 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed broken Linux build by changing Counter helper class used bykbr@google.com2010-02-121-21/+21
| | | | | | | | | | NumElements() from a local class to a nested class as Gregg suggested in http://codereview.chromium.org/574024 . Changed this class to use DISALLOW_COPY_AND_ASSIGN. Review URL: http://codereview.chromium.org/606025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38923 0039d316-1c4b-4281-b951-d872f2087c98
* Added an arena allocator and an augmentable red-black tree whichkbr@chromium.org2010-02-127-0/+1449
| | | | | | | | | | | | | allocates its temporary objects from it. In a subsequent checkin, the red-black tree will be augmented into an interval tree, which is a key data structure for efficient implementation of one of the algorithms in the forthcoming code in this directory. I plan to submit this for C++ readability following code review. Review URL: http://codereview.chromium.org/574024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38908 0039d316-1c4b-4281-b951-d872f2087c98
* O3D initialized to the monitor/adapter where the window is on.zmo@google.com2010-02-112-22/+79
| | | | | | Review URL: http://codereview.chromium.org/593031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38819 0039d316-1c4b-4281-b951-d872f2087c98
* Remove redundant casts in g_signal_connect() throughout all gtk code we have.erg@chromium.org2010-02-101-4/+4
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/600033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38629 0039d316-1c4b-4281-b951-d872f2087c98
* Roll imported Nixysa version forward to get the new universally compatible ↵maf@google.com2010-02-091-1/+1
| | | | | | | | version. Review URL: http://codereview.chromium.org/600024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38528 0039d316-1c4b-4281-b951-d872f2087c98
* Roll back Nixysa imported rev so that we get the Python 2.4 compatible version.maf@google.com2010-02-091-1/+1
| | | | | | Review URL: http://codereview.chromium.org/583016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38522 0039d316-1c4b-4281-b951-d872f2087c98
* Bump DEPS to pull in latest Nixysa.maf@google.com2010-02-081-1/+1
| | | | | | Review URL: http://codereview.chromium.org/582004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38414 0039d316-1c4b-4281-b951-d872f2087c98
* linux: native OpenGL ES supportpiman@google.com2010-02-0814-189/+619
| | | | | | | | | This includes Gregg's CL 548023 There are still a few hard-coded paths, and issues to solve, but hellocube-textures-glsl is running on an actual device. Review URL: http://codereview.chromium.org/572029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38385 0039d316-1c4b-4281-b951-d872f2087c98
* Force Java version to 1.6.0 on Mac OS X because apparently latestkbr@chromium.org2010-02-051-1/+10
| | | | | | | | | JSCompiler binaries require this version. Verified this fix on 10.5 and tested on 10.6 as well. Review URL: http://codereview.chromium.org/578022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38275 0039d316-1c4b-4281-b951-d872f2087c98
* Added needed dependency on npo3dautoplugin because otherwise thekbr@chromium.org2010-02-051-0/+3
| | | | | | | | unpack_firefox target can run before the plugin has been built. Review URL: http://codereview.chromium.org/574019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38272 0039d316-1c4b-4281-b951-d872f2087c98
* Roll Skia to 488 to pick up some new needed entry points.kbr@chromium.org2010-02-051-1/+1
| | | | | | Review URL: http://codereview.chromium.org/577031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38271 0039d316-1c4b-4281-b951-d872f2087c98
* roll deps to pick up nacl changes for armpiman@google.com2010-02-051-1/+1
| | | | | | Review URL: http://codereview.chromium.org/575020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38249 0039d316-1c4b-4281-b951-d872f2087c98
* Worked around bug in 32-bit Safari 4 on Mac OS X 10.6 where thekbr@chromium.org2010-02-051-0/+6
| | | | | | | | | | browser sends O3D a spurious NPP_SetWindow with an invalid window after first sending it a valid one. Tested this on both 10.6 and 10.5; no ill effects on 10.5, including in multiple tab case. Review URL: http://codereview.chromium.org/572027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38236 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed build problem on Mac OS X 10.6. precompile.h is inferred by namekbr@chromium.org2010-02-051-0/+2
| | | | | | | | | | | | to be a C file, but it includes C++ headers like <vector> and <algorithm>. In order for the compiler to find these headers it was necessary to force it to treat this as a C++ header. This fix was determined to be necessary on multiple machines running Xcode 3.2.1. It has also been tested on 10.5 with no ill effects. Review URL: http://codereview.chromium.org/572026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38235 0039d316-1c4b-4281-b951-d872f2087c98
* Bump chromium DEPS to pick up my skia Linux crash fix.tschmelcher@chromium.org2010-02-031-1/+11
| | | | | | | | | TEST=built and ran on Linux and loaded a font that was not installed BUG=none Review URL: http://codereview.chromium.org/565013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38044 0039d316-1c4b-4281-b951-d872f2087c98
* linux: add an option to disable FBO support for platforms that don't have it.piman@google.com2010-02-014-3/+25
| | | | | | Review URL: http://codereview.chromium.org/551218 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37737 0039d316-1c4b-4281-b951-d872f2087c98