summaryrefslogtreecommitdiffstats
path: root/o3d
Commit message (Collapse)AuthorAgeFilesLines
* Added command buffer unit tests to gyp.apatrick@google.com2009-09-2413-50/+147
| | | | | | | | | | | | | | | | | | | Can optionally override default renderer with environment variable. One of: GYP_DEFINES = "renderer=d3d9" GYP_DEFINES = "renderer=gl" GYP_DEFINES = "renderer=cb cb_service=d3d9" GYP_DEFINES = "renderer=cb cb_service=gl" Fixed some warnings. Works on windows with D3D9 but not GL, mac or linux yet. TEST=none BUG=none Review URL: http://codereview.chromium.org/208037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27125 0039d316-1c4b-4281-b951-d872f2087c98
* GPUProcessor uses O3D command buffer service to render to a window.apatrick@google.com2009-09-2417-213/+681
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added libraries that contain a subset of the O3D command buffer code independent on NaCl. Extracted Upcall interface from CommandBufferEngine. Now this works in JavaScript to clear the GPU plugin element to a random color: // BEGIN_FRAME sharedMemory.setInt32(putOffset++, 0x00000201); // CLEAR sharedMemory.setInt32(putOffset++, 0x00000408); sharedMemory.setInt32(putOffset++, 7); sharedMemory.setFloat(putOffset++, Math.random()); sharedMemory.setFloat(putOffset++, Math.random()); sharedMemory.setFloat(putOffset++, Math.random()); sharedMemory.setFloat(putOffset++, 1); sharedMemory.setFloat(putOffset++, 0.5); sharedMemory.setInt32(putOffset++, 0); // END_FRAME sharedMemory.setInt32(putOffset++, 0x00000301); TEST=none BUG=none Review URL: http://codereview.chromium.org/234001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27098 0039d316-1c4b-4281-b951-d872f2087c98
* Changed selenium tests to recover from test crashes/hangs. Divided ↵kkania@google.com2009-09-2410-721/+841
| | | | | | | | perceptual diff tests into unit test cases, which can be run alongside the selenium tests. Review URL: http://codereview.chromium.org/212031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27092 0039d316-1c4b-4281-b951-d872f2087c98
* fix for gl cbgman@google.com2009-09-231-16/+16
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26892 0039d316-1c4b-4281-b951-d872f2087c98
* Change command buffer client code to use structures.gman@google.com2009-09-2344-1914/+4607
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I didn't update the big_test although I'm happy to do that in another CL. I changed the CB renderer code to use this. The only place I didn't is the state handling code. I'll consider changing that in another CL. I changed DoCommand so it gets passed the entire command data including the command itself where as it used to get passed the command buffer entry after the command. I wanted to put the commands into the structures as I think it makes them easier to use since they can then correctly set their header. I could have left DoCommand as is but there would have been a lot of funky pointer math and I thought this change made it cleaner. Some questions I had while doing this. There are a few places in the code that use unsigned int instead of uint32. It seems we should use uint32 because unsigned int is not guarnteed to be 32bits. So for example ResourceID is unsigned int right now. The CMD::Set/CMD::Init/CommandBufferHelper commands are currently fairly untyped. For example DESTROY_TEXTURE takes a uint32 id. Should it take a ResourceID instead? DRAW should maybe take an enum for primitive_type? If we decide to do that I'd like to do it in another CL. There's no checking for overflow. We could add a bunch of DCHECK like DCHECK_LE(width, 65536) or DCHECK_LE(semantic_index, 16). I'd like to do those in another CL as well as I think we need to discuss what commands we want to change. All the code is in .h files because we want all of this code to inline. Theoretically this should be just as efficient as poking values into arrays in the opt builds. Review URL: http://codereview.chromium.org/212018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26886 0039d316-1c4b-4281-b951-d872f2087c98
* This removes some redundant copying of the cactions dll intogspencer@google.com2009-09-221-10/+2
| | | | | | | the product dir. Review URL: http://codereview.chromium.org/210044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26880 0039d316-1c4b-4281-b951-d872f2087c98
* Fix the docs. Apparently they've been broken sincegman@google.com2009-09-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | August 3rd rev 22348. The scary thing is that's a little hard to believe it's been broken that long and no one noticed so I hope this is the correct fix but it does appear to be wrong. The '/'s that were removed are used in a string concat in the HTML templates. Sometimes they need to be '' and sometimes 'folder/' so that urls become http://foo/bar.html or http://foo/folder/bar.html Review URL: http://codereview.chromium.org/213033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26879 0039d316-1c4b-4281-b951-d872f2087c98
* Added support for getting and setting the CommandBuffer token and error.apatrick@google.com2009-09-223-1/+64
| | | | | | | | | | | See o3d/command_buffer/service/cross/cmd_buffer_engine.h. TEST=none BUG=none Review URL: http://codereview.chromium.org/207061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26871 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed crash in Internet Explorer on Windows XP caused by recentkbr@google.com2009-09-221-2/+2
| | | | | | | | | | full-screen changes in http://codereview.chromium.org/210005 . Call CComControlBase::IOleInPlaceObject_SetObjectRects directly as the superclass implementation of CHostControl::SetObjectRects. Review URL: http://codereview.chromium.org/216055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26870 0039d316-1c4b-4281-b951-d872f2087c98
* Added support for registering additional shared memory objects (textures and ↵apatrick@google.com2009-09-224-3/+161
| | | | | | | | | | | buffers etc) with the CommandBuffer. TEST=none BUG=none Review URL: http://codereview.chromium.org/216043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26857 0039d316-1c4b-4281-b951-d872f2087c98
* Implemented get and put offset synchronization via NPObject interface in GPU ↵apatrick@google.com2009-09-2116-46/+586
| | | | | | | | | | | | plugin CommandBuffer. Added GPUProcessor which handles commands (currently 4-byte "colors") put into the command buffer. TEST=none BUG=none Review URL: http://codereview.chromium.org/203003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26762 0039d316-1c4b-4281-b951-d872f2087c98
* Added render surfaces in command buffer service opengl version.petersont@google.com2009-09-2110-48/+601
| | | | | | Review URL: http://codereview.chromium.org/211020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26760 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed crash introduced by recent full-screen work underkbr@google.com2009-09-211-0/+10
| | | | | | | | | | | http://codereview.chromium.org/210005 . Restore the browser's original WNDPROC on the plugin window before destroying the O3D plugin, so that Windows does not attempt to call into the O3D plugin after it has been unloaded. Review URL: http://codereview.chromium.org/208050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26750 0039d316-1c4b-4281-b951-d872f2087c98
* Version number bump for releasebradnelson@google.com2009-09-211-1/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26720 0039d316-1c4b-4281-b951-d872f2087c98
* Build -dbgsym Debian packages. These contain the stripped-out debugging ↵tschmelcher@google.com2009-09-185-33/+74
| | | | | | | | symbols and can be installed on a system to automatically enable symbolic debugging. Review URL: http://codereview.chromium.org/210018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26541 0039d316-1c4b-4281-b951-d872f2087c98
* Adding a presubmit script to honor the tree status.bradnelson@google.com2009-09-171-0/+91
| | | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/208016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26519 0039d316-1c4b-4281-b951-d872f2087c98
* This updates the DEPS for V8, Chrome and NaCl.gspencer@google.com2009-09-173-6/+7
| | | | | | | | | It also fixes two other minor problems: a signed/unsigned mismatch in the gapi_decoder, and a switch from sys.argv[0] to __file__ in codegen.py. Review URL: http://codereview.chromium.org/208015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26504 0039d316-1c4b-4281-b951-d872f2087c98
* Rewrote full-screen support on Windows. O3D now always creates its ownkbr@google.com2009-09-1713-313/+353
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | window in which to render, rather than rendering into either the browser's window or a separate full-screen window. The O3D window is removed from the browser's hierarchy and made top-level in order to go to full-screen mode via Direct3D. This solves fundamental focus fighting problems seen on Windows Vista. This change allowed the event forwarding code in the plugin's window message loop to be deleted, but a new workaround for a flicker upon the first mouse click in O3D in Firefox was required. Split the Renderer's fullscreen API into GoFullscreen and CancelFullscreen to solve chicken-and-egg problems with coming out of full-screen mode. Changed how the plugin detects resize events. Rather than responding to WM_SIZE messages, NPP_SetWindow is now responsible for propagating resize events to the client. Changed the ActiveX host control to call NPP_SetWindow in response to SetObjectRects. Fixed RendererGL::IsCurrent() on non-Mac platforms. Removed the bogus current_renderer_ static variable. Tested the following scenarios in IE and Firefox on Windows: - Full-screen involving display mode change, Escape to exit. - Full-screen involving display mode change, Alt-Tab to exit. - Full-screen involving display mode change, Alt-F4 to exit. - Full-screen involving display mode change, timeout to exit. - Full-screen with no display mode change, Escape to exit. - Full-screen with no display mode change, Alt-Tab to exit. - Full-screen with no display mode change, Alt-F4 to exit. - Full-screen with no display mode change, timeout to exit. - Beach demo, particle demo, other tests. Tested the following scenarios on the Mac in Safari (for which the code path didn't change): - Full-screen, escape to exit. - Full-screen, Alt-Tab to exit. - Full-screen, timeout to exit. When http://crbug.com/21921 is fixed, full-screen mode will work on Windows Vista with Aero on in Chrome. Review URL: http://codereview.chromium.org/210005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26489 0039d316-1c4b-4281-b951-d872f2087c98
* Add missing gclient dependencies to .gitignore.maruel@chromium.org2009-09-1721-3008/+3008
| | | | | | | | | | | | | | Fix the format of many directories so they don't show up in git status anymore. Run dos2unix on *.cc, caught many inconsistent and CRLF files. TBR=evan TEST=still build, git status shows nothing BUG=none Review URL: http://codereview.chromium.org/211010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26441 0039d316-1c4b-4281-b951-d872f2087c98
* Changing command buffer to use structs instead ofgman@google.com2009-09-175-646/+1254
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | arrays, step 1 I hope I'm not stepping on any toes here. I wanted to write some command buffer code but I didn't want to go poking values into arrays so I thought I'd attempt to refactor a little. I hope I'm not steping on any toes. Some answers to possible questions. O3D_COMMAND_ARGS_FLAG_AT_LEAST_N is a macro because it needs to be a compile time constant so I can generate the table. All the commands with a FixMe are to be done in another CL. The Structs don't follow the style guide because it's just busy work to match up SET_TOKEN and SetToken. It seems like a reasonable exception to me. This way the functions, IDs and structs all match easily and therefore lists that use them be automatically generated and kept in sync. The next step is I want to uncompress some of the commands. As an example, it doesn't seem like CreateTexture2D should squeeze width and height into 16bits halfs of a 32bit value. This API is not targeted at machines with 2K of memory and the amount of code and other scaffolding around decoding those 2 16bit halfs far outways saving 16bits in a command that allocates a texture. It also makes it harder to use the command because the person generating it has to also go through the same hoops. Review URL: http://codereview.chromium.org/206020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26421 0039d316-1c4b-4281-b951-d872f2087c98
* Reverts fix for the scons build and fixes it in a different way sogspencer@google.com2009-09-162-5/+18
| | | | | | | | that both the scons and gyp builds are functional. Review URL: http://codereview.chromium.org/204049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26399 0039d316-1c4b-4281-b951-d872f2087c98
* Make follow-up changes per r26302 review comments that were apparently not mademark@chromium.org2009-09-162-11/+16
| | | | | | | | in r26302. Set Subversion properties, fix the O3D GYP invocation to work properly, fix presubmit warnings, and do some additional cleanup. Review URL: http://codereview.chromium.org/200144 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26378 0039d316-1c4b-4281-b951-d872f2087c98
* Use MAC_OS_X_DEPLOYMENT_TARGET instead of rolling our own macro.mark@chromium.org2009-09-161-1/+1
| | | | | | | Allow the deployment target and SDK to be overridden by GYP variables. Review URL: http://codereview.chromium.org/193128 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26360 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed scons build after upgrade to August 2009 DirectX SDK.kbr@google.com2009-09-161-1/+1
| | | | | | Review URL: http://codereview.chromium.org/196135 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26313 0039d316-1c4b-4281-b951-d872f2087c98
* Fix build breakage concerning CreateTemporaryFile vs CreateTemporaryFileName.maf@google.com2009-09-162-5/+5
| | | | | | Review URL: http://codereview.chromium.org/193122 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26310 0039d316-1c4b-4281-b951-d872f2087c98
* Force inclusion of build/common.gypi for all chromium gyp files.yaar@chromium.org2009-09-154-5/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | Why: Simpler build code. If everybody includes it, it should be included automatically. Why now: The webkit chromium builds need it be specified, since can't default to build/common.gypi. What was done: 1. build/common.gypi's contents were moved to a new file build/gyp_chromium.gypi 2. tools/gyp/gyp_chromium was moved to build/gyp_chromium and made to automatically include build/gyp_chromium.gypi. 3. lots of gyp files were fixed to not refer to build/common.gypi any more. 4. o3d which also builds independently of chrome, was fixed to have a gyp_o3d that includes gyp_chromium.gypi too. 5. build/common.gypi was left empty, because there are some external projects that still refer to it. Things that are left to do after this patch is in: 1. The following external files (in other repositories) need to stop include common.gypi ./third_party/hunspell/hunspell.gyp ./third_party/icu/icu.gyp ./v8/tools/gyp/v8.gyp 2. Once nobody refers to common.gypi anymore, delete common.gypi -or- Delete gyp_chromium.gypi and move its content back to common.gypi Tested on mac, win and linux. On win, got a few unit tests errors on chrome bookmarks, which should not be related. I'm running again with clobber to verify. Review URL: http://codereview.chromium.org/206006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26302 0039d316-1c4b-4281-b951-d872f2087c98
* Changes needed for MacOS X 10.4 support.maf@google.com2009-09-151-1/+2
| | | | | | | | Add "support_macosx_10_4" option to common.gypi that causes it to change deployment target, and define a new preprocessor symbol on the Mac build. Setting this flag to true is harmless on non Mac builds and has no effect. Make various changes to source files where they modify their behavior in the presence of the new preprocessor symbol to become 10.4 compatible. Review URL: http://codereview.chromium.org/201122 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26285 0039d316-1c4b-4281-b951-d872f2087c98
* This updated the GYP deps file to the last known good revision of Chrome,gspencer@google.com2009-09-154-17/+17
| | | | | | | | and all the associated third party packages. Review URL: http://codereview.chromium.org/203077 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26283 0039d316-1c4b-4281-b951-d872f2087c98
* Review URL: http://codereview.chromium.org/176026rlp@google.com2009-09-155-92/+323
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26273 0039d316-1c4b-4281-b951-d872f2087c98
* Made gyp file for command buffer libraries.apatrick@google.com2009-09-1522-44/+265
| | | | | | | | | | | | | | Gyp build works on Windows. Mac and linux won't work yet. Fixed some warnings. Switched from dxerr.lib to dxerr9.lib. Implemented a Texture::SetRect case for DXT compressed textures. Fixed division by zero for zero stride vertex buffers. TEST=none BUG=none Review URL: http://codereview.chromium.org/200127 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26271 0039d316-1c4b-4281-b951-d872f2087c98
* Bump O3D DEPS revision to 147 to get Cg 2.2 (also gspencer's pdiff CL).tschmelcher@google.com2009-09-111-1/+1
| | | | | | Review URL: http://codereview.chromium.org/196093 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26026 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Ship libCg on 32-bit Debian systems too, since nvidia-cg-toolkit ↵tschmelcher@google.com2009-09-113-2/+6
| | | | | | | | doesn't seem to like to use the latest version. Cg 2.2 fixes some Linux bugs, so it's worth ensuring that it's used on all systems. Review URL: http://codereview.chromium.org/194081 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26003 0039d316-1c4b-4281-b951-d872f2087c98
* Guess at getting linux build to work.gman@google.com2009-09-102-15/+9
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25948 0039d316-1c4b-4281-b951-d872f2087c98
* A bunch of jscompiler fixes including updating togman@google.com2009-09-1010-25/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add an Info.plist flag to force the software renderer.maf@google.com2009-09-102-16/+44
| | | | | | Review URL: http://codereview.chromium.org/199087 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25937 0039d316-1c4b-4281-b951-d872f2087c98
* Turning off auto upload for o3d trybots for now.bradnelson@google.com2009-09-101-1/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25936 0039d316-1c4b-4281-b951-d872f2087c98
* Switching on tryserver pointed at nacl trymaster as a test.bradnelson@google.com2009-09-101-1/+4
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25912 0039d316-1c4b-4281-b951-d872f2087c98
* missed onegman@google.com2009-09-091-0/+7
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25815 0039d316-1c4b-4281-b951-d872f2087c98
* Make more stuff private in renderergman@google.com2009-09-093-37/+47
| | | | | | Review URL: http://codereview.chromium.org/199066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25805 0039d316-1c4b-4281-b951-d872f2087c98
* Check for value overlow in buffer.ccgman@google.com2009-09-091-0/+7
| | | | | | | | http://b/issue?id=2106717 Review URL: http://codereview.chromium.org/194059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25804 0039d316-1c4b-4281-b951-d872f2087c98
* This fixes some warnings in the Linux release build.bradnelson@google.com2009-09-093-16/+20
| | | | | | Review URL: http://codereview.chromium.org/194061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25802 0039d316-1c4b-4281-b951-d872f2087c98
* minor change of render_surface_test.ccgman@google.com2009-09-091-0/+2
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25774 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for mac/linux unit_testgman@google.com2009-09-091-0/+2
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25772 0039d316-1c4b-4281-b951-d872f2087c98
* Implemented shared memory as an NPObject. Using NPObject method to expose ↵apatrick@google.com2009-09-0918-124/+546
| | | | | | | | | | | | mapping function rather than NPAPI change. Note that shared memory objects currently lose identity when they cross a process boundary. If an object is sent across a boundary and back, there are now two objects representing the same handle in a single process. This can be fixed. TEST=none BUG=none Review URL: http://codereview.chromium.org/194049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25749 0039d316-1c4b-4281-b951-d872f2087c98
* Change the params for the 2d and googleIO samples to cope with slight ↵maf@google.com2009-09-081-2/+2
| | | | | | | | rendering difference on Mac. Review URL: http://codereview.chromium.org/200048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25667 0039d316-1c4b-4281-b951-d872f2087c98
* Add scripts to automatically build installer and disk image in GYP build. maf@google.com2009-09-085-2/+178
| | | | | | | | Fix compile error in serializer.cc Don't force rebuild of idl files. Review URL: http://codereview.chromium.org/195023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25642 0039d316-1c4b-4281-b951-d872f2087c98
* This makes selenium in Firefox work on the Mac.gspencer@google.com2009-09-084-8/+152
| | | | | | Review URL: http://codereview.chromium.org/201046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25639 0039d316-1c4b-4281-b951-d872f2087c98
* Replaced BaseNPObject with DefaultNPObject because...apatrick@google.com2009-09-0827-657/+535
| | | | | | | | | | | | | | DefaultNPObject can derive from bases other than NPObject, allowing concrete NPObjects to choose their own NPObject subclass. DefaultNPObject does not rely on virtual functions. See change to NPGetClass in np_class.h. Removed count() from MockNPObject because I discovered gmock checks that no mock objects exist after a test completes anyway. TEST=none BUG=none Review URL: http://codereview.chromium.org/196032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25632 0039d316-1c4b-4281-b951-d872f2087c98
* Fixing the path passed for the perceptual diff program so it'll be found.gspencer@google.com2009-09-051-1/+1
| | | | | | Review URL: http://codereview.chromium.org/199038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25557 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