summaryrefslogtreecommitdiffstats
path: root/app/surface
Commit message (Collapse)AuthorAgeFilesLines
* Fix ThumbnailGenerator on Windows.kkania@chromium.org2010-11-114-44/+109
| | | | | | | | | | | | | In the browser, duplicate the file mapping handle before sending to the renderer and map the TransportDIB before accessing the memory. In the renderer, do not map the file twice, which was happening when TransportDIB::Map and GetPlatformCanvas were both being called. BUG=none TEST=none Review URL: http://codereview.chromium.org/4569002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65775 0039d316-1c4b-4281-b951-d872f2087c98
* Mac/gpu: Don't show uninitialized surfaces while resizing plugins / ↵thakis@chromium.org2010-11-052-0/+33
| | | | | | | | | | | composited tabs. BUG=53165 TEST=Go to http://webkit.org/blog/386/3d-transforms/. Resize window. Watch a youtube video click the "make bigger" button. No garbage should appear. There are still some funky artifacts at the top/right border during resizing caused by clamping the texture instead of filling with white, and sometimes (rarely) the tab flashes black/white but I'd like to tackle that in follow-up CLs. This is already much better than what's in the tree currently. Review URL: http://codereview.chromium.org/4101002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65220 0039d316-1c4b-4281-b951-d872f2087c98
* Let every "accelerated IO surface swapped" message have an identifier of the ↵thakis@chromium.org2010-10-282-2/+16
| | | | | | | | | | | | | | | surface. Currently, this is only used to DCHECK a currently implicit invariant, but I want to use this to let every surface container only remember its last painted-to surface, and not its last created surface. No behavior change. BUG=53165 TEST=none Review URL: http://codereview.chromium.org/4142004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64317 0039d316-1c4b-4281-b951-d872f2087c98
* Fix up SharedMemory implementation so that it is more equivalent on Windows ↵dmaclach@chromium.org2010-10-272-9/+2
| | | | | | | | | | | | | vs Posix and enforces exclusive creates. Clean up some naming to make it clearer what size you are getting by changing max_size to created_size. BUG=NONE TEST=BUILD Review URL: http://codereview.chromium.org/4034006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64097 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 63232 - On Windows, create a new TransportDIB::Handle struct which ↵kkania@chromium.org2010-10-204-294/+83
| | | | | | | | | | | | | | | | | | | | | | | | | includes the file mapping HANDLE and the source process ID. Duplicating the handle for the remote process is done in TransportDIB::Map, instead of in various #ifdefs scattered across the code. Also on windows, remove the struct for the TransportDIB::Id which contained both the sequence number and the HANDLE and replace it with just the sequence number. Fix ThumbnailGenerator by mapping the TransportDIB on Windows and adding a method to duplicate the file mapping handle before sending across the channel. Also, add a ScopedHandle and fix some handle leaks. BUG=none TEST=none Review URL: http://codereview.chromium.org/3834003 TBR=kkania@chromium.org Review URL: http://codereview.chromium.org/3943002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63246 0039d316-1c4b-4281-b951-d872f2087c98
* On Windows, create a new TransportDIB::Handle struct which includes the filekkania@chromium.org2010-10-204-83/+294
| | | | | | | | | | | | | | | | | | | | mapping HANDLE and the source process ID. Duplicating the handle for the remote process is done in TransportDIB::Map, instead of in various #ifdefs scattered across the code. Also on windows, remove the struct for the TransportDIB::Id which contained both the sequence number and the HANDLE and replace it with just the sequence number. Fix ThumbnailGenerator by mapping the TransportDIB on Windows and adding a method to duplicate the file mapping handle before sending across the channel. Also, add a ScopedHandle and fix some handle leaks. BUG=none TEST=none Review URL: http://codereview.chromium.org/3834003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63232 0039d316-1c4b-4281-b951-d872f2087c98
* Move scoped_cftyperef from base to base/mac, use the new namespace, and name itbrettw@chromium.org2010-10-172-5/+5
| | | | | | | | | | properly (scoped_cftyperef -> ScopedCFTypeRef). TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3855001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62887 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 61608 - On Windows, create a new TransportDIB::Handle struct which ↵satish@chromium.org2010-10-064-218/+83
| | | | | | | | | | | | | | | | | | | | | | | includes the file mapping HANDLE and the source process ID. Duplicating the handle for the remote process is done in TransportDIB::Map, instead of in various #ifdefs scattered across the code. Also on windows, remove the struct for the TransportDIB::Id which contained both the sequence number and the HANDLE and replace it with just the sequence number. Fix ThumbnailGenerator by mapping the TransportDIB on Windows and adding a method to duplicate the file mapping handle before sending across the channel. BUG=none TEST=none Review URL: http://codereview.chromium.org/3305020 BUG=58128 TBR=kkania@chromium.org Review URL: http://codereview.chromium.org/3596008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61624 0039d316-1c4b-4281-b951-d872f2087c98
* On Windows, create a new TransportDIB::Handle struct which includes the filekkania@chromium.org2010-10-064-83/+218
| | | | | | | | | | | | | | | | | mapping HANDLE and the source process ID. Duplicating the handle for the remote process is done in TransportDIB::Map, instead of in various #ifdefs scattered across the code. Also on windows, remove the struct for the TransportDIB::Id which contained both the sequence number and the HANDLE and replace it with just the sequence number. Fix ThumbnailGenerator by mapping the TransportDIB on Windows and adding a method to duplicate the file mapping handle before sending across the channel. BUG=none TEST=none Review URL: http://codereview.chromium.org/3305020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61608 0039d316-1c4b-4281-b951-d872f2087c98
* Revert asynchronous backing store changes.derat@chromium.org2010-10-051-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | This reverts http://codereview.chromium.org/3506007 (r61225 -- the original change) and http://codereview.chromium.org/3616005 (r61446 -- a fix for a double-free in Pepper caused by the original change). Doing asynchronous copying to the backing store in the browser requires some large changes to Pepper that I'm not going to have time to work on anytime soon. A cache of in-flight TransportDIBs would need to be added (similar to what the renderer already does), and we'd also need to do copy-on-write when a plugin wants to draw on top of a previous frame that's currently held by the browser. It seems safer to revert the early part of the asynchronous copying change instead of leaving it partially checked in. BUG=none TEST=ran it Review URL: http://codereview.chromium.org/3583012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61525 0039d316-1c4b-4281-b951-d872f2087c98
* Add ViewMsg_DoneUsingBitmap message.derat@chromium.org2010-10-011-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | ViewMsg_UpdateRect_ACK messages sent from the browser to the renderer currently tell the renderer both that it can start rendering the next update and that the TransportDIB that it previously sent to the browser is now available for reuse. This change adds a new ViewMsg_DoneUsingBitmap message for communicating the latter piece of information. We currently always send ViewMsg_DoneUsingBitmap immediately before sending ViewMsg_UpdateRect_ACK, so no functional changes are intended from this change. This is preparatory work for an optimization where we defer copying updates to the backing store, instead copying them directly from the TransportDIB to the widget -- if we get repeated updates for the same region, we can avoid copying all but the final update to the backing store entirely. BUG=none TEST=tried it on GTK; sent to trybots. will do some testing on other platforms too Review URL: http://codereview.chromium.org/3506007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61225 0039d316-1c4b-4281-b951-d872f2087c98
* shared_memory: remove wstrings, fix callers.evan@chromium.org2010-09-292-2/+2
| | | | | | | | | BUG=23581 TEST=compiles Review URL: http://codereview.chromium.org/3555002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60985 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: Fix small leak in iosurface resizing code.thakis@chromium.org2010-08-251-2/+4
| | | | | | | | BUG=TEST=none Review URL: http://codereview.chromium.org/3200011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57279 0039d316-1c4b-4281-b951-d872f2087c98
* Remove obviously unneeded forward declarations from headers under ↵viettrungluu@chromium.org2010-08-211-5/+0
| | | | | | | | | | | src/{app,base,net}. BUG=none TEST=builds Review URL: http://codereview.chromium.org/3136025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56995 0039d316-1c4b-4281-b951-d872f2087c98
* `#pragma once` for app, base, chrome, gfx, ipc, net, skia, viewsthakis@chromium.org2010-07-263-0/+3
| | | | | | | | | BUG=50273 TEST=everything still builds, build is 10% faster on windows, same speed on mac/linux TBR: erg git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53716 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: Make TransportDIB::Create() work.thakis@chromium.org2010-07-171-0/+5
| | | | | | | | | | This is never called from "live" code, but chrome/browser/tab_contents/thumbnail_generator.cc uses it. ThumbnailGenerator is currently used only on windows, but I'd like to use it on OS X. TransportDIB::Create() isn't called on OS X because all created by chrome/browser/renderer_host/render_widget_helper.cc, which creates only the shared memory object and stores it away. The actual TransportDIB is created by calls to TransportDIB::Map() in both browser and renderer processes. Review URL: http://codereview.chromium.org/3020008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52835 0039d316-1c4b-4281-b951-d872f2087c98
* AcceleratedSurface performs one off GL initialization before attempting to ↵apatrick@chromium.org2010-07-151-0/+4
| | | | | | | | | | | create its offscreen GL context. TEST=try, verify that youtube now works, verify that WebGL still works BUG=49158 Review URL: http://codereview.chromium.org/3019003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52532 0039d316-1c4b-4281-b951-d872f2087c98
* Coverity: Fix leaking TransportDIB in ↵mattm@chromium.org2010-07-141-1/+2
| | | | | | | | | | | | GpuBackingStore{GLX,Win}::OnPaintToBackingStore CID=8190,9146 TEST=none BUG=none Review URL: http://codereview.chromium.org/2997002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52410 0039d316-1c4b-4281-b951-d872f2087c98
* Added --use-gl command line flag to select GL implementation.apatrick@chromium.org2010-07-141-0/+7
| | | | | | | | | | | | - Options are desktop, egl and osmesa. - Also added support for bliting an OSMesa bask buffer to a GDK window. TEST=trybots, manual verification that WebGL and Pepper 3D work BUG=45898 Review URL: http://codereview.chromium.org/2825005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52388 0039d316-1c4b-4281-b951-d872f2087c98
* Clang: Do not ignore result of HANDLE_EINTR.thakis@chromium.org2010-06-231-1/+3
| | | | | | Review URL: http://codereview.chromium.org/2805026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50556 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 49984 - patch from issue 2762014thakis@chromium.org2010-06-161-3/+1
| | | | | | | TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/2835007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50000 0039d316-1c4b-4281-b951-d872f2087c98
* patch from issue 2762014thakis@chromium.org2010-06-161-1/+3
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49984 0039d316-1c4b-4281-b951-d872f2087c98
* Committing on behalf of p155off@gmail.com .kbr@google.com2010-06-152-77/+38
| | | | | | | | | | | | | Remove duplicated code in AcceleratedSurface using PbufferGLContext instead. This also fixes a crash caused by the OpenGL bindings not being initialized. BUG=46286 TEST=flash plugin 10.1 works again in both mac 10.5 and 10.6 Review URL: http://codereview.chromium.org/2782006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49836 0039d316-1c4b-4281-b951-d872f2087c98
* Added EGL based GLContext.apatrick@chromium.org2010-06-092-1/+8
| | | | | | | | | | | | | | Python script to generate code to dynamically bind to GL functions (native GL, OSMesa, EGL or mock GL for unit tests). This replaces GLEW because GLEW doesn't bind to the GLES dialect of GL. Moved the mock GL code into app/gfx/gl. Updated the GPU code and AcceleratedSurface to use the new GL bindings. TEST=trybots BUG=none Review URL: http://codereview.chromium.org/2134006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49332 0039d316-1c4b-4281-b951-d872f2087c98
* Use DISALLOW_COPY_AND_ASSIGN instead of DISALLOW_EVIL_CONSTRUCTORS in app ↵tfarina@chromium.org2010-06-041-1/+1
| | | | | | | | | | | and base directories. BUG=None TEST=None Review URL: http://codereview.chromium.org/2654001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48931 0039d316-1c4b-4281-b951-d872f2087c98
* Pull latest ppapi for initial testing support, implement checks so the tests ↵brettw@chromium.org2010-05-184-5/+18
| | | | | | | | | | | | pass in Chrome. Mostly, this involves better error checking. The most substantial change is that I made TransportDIB able to return NULL on failure to make a PlatformCanvas, which we run into when makeing too large of a canvas from a plugin. I checked all the callers of this function to make sure they all handled the problem (many already did). TEST=pulls Pepper test BUG=-none Review URL: http://codereview.chromium.org/2101004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47526 0039d316-1c4b-4281-b951-d872f2087c98
* Clear IOSurface to transparent, not white, so that transparent CA plugins ↵stuartmorgan@chromium.org2010-05-132-2/+2
| | | | | | | | | | | work correctly BUG=none TEST=Transparent CA plugins shouldn't have an opaque white background. Review URL: http://codereview.chromium.org/1732020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47221 0039d316-1c4b-4281-b951-d872f2087c98
* This adds in the ability for Chrome to generate windows with snapshotsgspencer@chromium.org2010-04-281-0/+21
| | | | | | | | | | | | of all currently open tabs in all browsers. This is needed for overview mode on ChromeOS. BUG=http://code.google.com/p/chromium-os/issues/detail?id=1170 TEST=Ran Chrome under ChromeOS with updated window manager. Review URL: http://codereview.chromium.org/661237 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45824 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed loss of rendered output on Mac OS X if Pepper 3D application useskbr@google.com2010-04-142-52/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | framebuffer objects. Conditionalized allocation of FBO in AcceleratedSurface class, and changed SwapBuffers to optionally copy from the current context's back buffer. Changed GPUProcessor on Mac to always use PbufferGLContext, and hooked in optional call to AcceleratedSurface's SwapBufers before calling user's callback. Completely disabled ViewGLContext on Mac OS X. This causes Pepper 3D applications to use the GGL default back buffer on Mac, which is the desired behavior. Ideally the FBO allocation would be factored out of the AcceleratedSurface class, and ideally the pbuffer setup code would not be duplicated between this class and PbufferGLContext. However, these cleanups are being deferred because they require substantial refactorings. Removed accelerated_surface_stub.cc, which isn't needed any more since AcceleratedSurface moved to app/. Tested: - Pepper 3D plugin with glBindFramebuffer(GL_FRAMEBUFFER, 0) in place with both IOSurface and TransportDIB code paths - Unity 3D with IOSurface / Core Animation code path BUG=41004 TEST=none (ran above tests) Review URL: http://codereview.chromium.org/1637007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44507 0039d316-1c4b-4281-b951-d872f2087c98
* - Extracted platform specific code from GLES2 command decoder to platform ↵apatrick@chromium.org2010-04-092-29/+30
| | | | | | | | | | | | | specific GLContext classes. - GLContext encapsulates management of GL contexts on each platform. - ReadPixels uses actual current window size to validate source rectangle. TEST=trybots, running Pepper 3D and WebGL demos on all platforms BUG=none Review URL: http://codereview.chromium.org/1605014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44129 0039d316-1c4b-4281-b951-d872f2087c98
* Remove dependency from webkit on chrome/common by moving files to src/app.pinkerton@chromium.org2010-03-198-0/+1177
BUG=37985 TEST=no functional change. Review URL: http://codereview.chromium.org/1060001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42101 0039d316-1c4b-4281-b951-d872f2087c98