aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/viewer/sk_app/win
Commit message (Collapse)AuthorAge
* Touch input support for WindowsGravatar Brian Osman2017-06-07
| | | | | | | | | | | | | | | | | | | Had to add some logic to avoid touch and mouse cross-talk, because (at least on my laptop), the touch screen generates both kinds of events. This seems really useful [1] for the many [2] Skia developers with touch-enabled Windows devices. ---------- 1: No, not really. 2: N = 1? Bug: skia: Change-Id: Ib888bf4198f2cc0a29a31581ec4b64d3d9008c33 Reviewed-on: https://skia-review.googlesource.com/18920 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Add wireframe mode to Viewer.Gravatar Jim Van Verth2017-05-02
| | | | | | | Change-Id: I0ff11088465a4702acf9841a791d76f286ddbaf1 Reviewed-on: https://skia-review.googlesource.com/15147 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Detect RenderDoc in Windows viewer and make a core profileGravatar Brian Osman2017-03-17
| | | | | | | | | BUG=skia: Change-Id: I03a8a1b1ed9bd2483ddd8e231ba54dc10753b454 Reviewed-on: https://skia-review.googlesource.com/9836 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Added MSAA selection to viewer GUIGravatar Brian Osman2017-03-08
| | | | | | | | | | | | | | | | On Windows, we need to reconstruct the window to allow setting a new pixel format with a different sample count. Added some code that maintains window size/position across these changes. Previously, just cycling through backends would cause the window to move, as the "default" position would cycle across the screen. Now it's pinned. BUG=skia: Change-Id: Iecbe7a490577382043ffe5a88c910b4c0be2ed5c Reviewed-on: https://skia-review.googlesource.com/9085 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Maintain window position and size when re-createdGravatar Brian Osman2017-03-08
| | | | | | | | | | | Eliminates a UI oddity on Windows when cycling through backends. BUG=skia: Change-Id: I83f0325054def80bb9b6e5a9886461f8aad215ae Reviewed-on: https://skia-review.googlesource.com/9453 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Add msaa flag and UI to viewerGravatar csmartdalton2017-02-27
| | | | | | | | | BUG=skia: Change-Id: I0a24d5e6a4271f84ea5c82eb6d9ede9a1e63f86a Reviewed-on: https://skia-review.googlesource.com/8787 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Add onBackendCreated callback to ViewerGravatar Christopher Dalton2017-02-24
| | | | | | | | | | | | | Also removes fWidth and fHeight from Window and instead calls into WindowContent to get these values. BUG=skia: Change-Id: I72ee506004b7da73db9abb607a3bc82edfcf7d43 Reviewed-on: https://skia-review.googlesource.com/8795 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com> Reviewed-by: Yuqian Li <liyuqian@google.com>
* Integrate the ImGui library with viewerGravatar Brian Osman2017-02-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code and docs are at: https://github.com/ocornut/imgui ImGui is an open source immediate mode GUI library that's lightweight and fairly simply to integrate. Widget functions return their state, and the library emits vertex and index data to render everything. It's got a huge set of built-in widgets and really robust layout control. For the initial integration, I had to fix up event handling in the viewer's app framework (to get mouse wheel and more keys, etc...). The new viewer 'Debug' window is toggled with the space bar. For this change, I've added one feature to that window: the slide picker. It's got a list of all slides, with filtering support, and the ability to click to switch slides. I also included the ImGui 'Demo' window (toggled with 'g'). This is nicely laid out, and includes examples of pretty much everything the library can do. It also serves as good documentation - find something that looks like what you want, and then go look at the corresponding code (all of it is in imgui_demo.cpp). I have other CLs with other features (like directly editing the primaries of the working color space), but I wanted to land this chunk first, then start adding more features. Other than adding new debugging features, there are few more outstanding work items: 1) Raster doesn't render the GUI correctly, due to non- invertible pos -> UV matrices. Florin is working on that. 2) Touch inputs aren't being routed yet, so the GUI isn't usable on Android yet. Might also be tough to work with, given the size. 3) ImGui has clipboard integration (that's why it wants the C, X, and V keys), but we need to wire it up to the OS' clipboard functions. 4) Draw commands can carry a void* payload to support drawing images (using whatever mechanism the engine has). I'd like to set that up (probably using SkImage*), which makes it really easy to add visualization of off-screen images in GMs, etc... BUG=skia: Change-Id: Iac2a63e37228d33141cb55b7e4d60bf11b7e9ae1 Reviewed-on: https://skia-review.googlesource.com/7702 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Simplify viewer's handling of backbuffer surface and color spaceGravatar Brian Osman2017-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | WindowContext still supports color spaces, but not other color types. Any off-screen rendering is the app's responsibility. This change also adds (working) F16 support to viewer. Note that the previous 10-bit and FP16 support in WindowContext was broken. There was no code to push the off-screen canvas to the window. If you ever made it to the unreachable off-screen code path in createSurface, it would have simply stopped drawing. The decision to limit the window's gamut to sRGB is mostly driven by my desire to add real-time editing of gamut. This design lets us do that, without tearing down and rebuilding the window for every change. An application could still supply a different gamut via setDisplayParams and render directly to the back buffer with proper color correction. BUG=skia: Change-Id: I94df35c7a42faee396009acc83683e40bb3c284d Reviewed-on: https://skia-review.googlesource.com/8153 Reviewed-by: Jim Van Verth <jvanverth@google.com> Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* SkTypes.h : move SkAutoMalloc into SkAutoMalloc.hGravatar Hal Canary2017-01-11
| | | | | | | | | | | | | | | | * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" Revert "Revert 'SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h'" This reverts commit c456b73fef9589bbdc5eb83eaa83e53c357bb3da. Change-Id: Ie2c1a17c20134b8ceab85a68b3ae3e61c24fbaab Reviewed-on: https://skia-review.googlesource.com/6886 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h"Gravatar Kevin Lubick2017-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a5494f117086d712855e4b6289c58c92d1549bcf. Reason for revert: Broke Google3 Original change's description: > SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h > > * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). > > * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h > > * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" > > Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88 > Reviewed-on: https://skia-review.googlesource.com/4543 > Reviewed-by: Ben Wagner <bungeman@google.com> > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Hal Canary <halcanary@google.com> > TBR=halcanary@google.com,bungeman@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ie8bd176121c3ee83c110d66c0d0ac65e09bfc9c5 Reviewed-on: https://skia-review.googlesource.com/6884 Commit-Queue: Kevin Lubick <kjlubick@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com>
* SkTypes.h : move SkAutoMalloc into SkAutoMalloc.hGravatar Hal Canary2017-01-11
| | | | | | | | | | | | | | * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88 Reviewed-on: https://skia-review.googlesource.com/4543 Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Enable backend switching for Windows ViewerGravatar jvanverth2016-07-27
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2184163003 Review-Url: https://codereview.chromium.org/2184163003
* SW backend for viewer on WindowsGravatar bsalomon2016-07-27
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2182273002 Review-Url: https://codereview.chromium.org/2182273002
* Use Windowing system-specific WindowContext factories.Gravatar bsalomon2016-07-26
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2169543002 Review-Url: https://codereview.chromium.org/2169543002
* More accurate render time and continuous freshGravatar liyuqian2016-07-06
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2129613002 Review-Url: https://codereview.chromium.org/2129613002
* Enable viewer in non-Vulkan buildsGravatar jvanverth2016-06-17
| | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2067023002 Committed: https://skia.googlesource.com/skia/+/746b792a9aad1230ab69158a51c49b2e5437d95b Review-Url: https://codereview.chromium.org/2067023002
* Revert of Enable viewer in non-Vulkan builds (patchset #2 id:20001 of ↵Gravatar egdaniel2016-06-15
| | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2067023002/ ) Reason for revert: breaking compile bots Original issue's description: > Enable viewer in non-Vulkan builds > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2067023002 > > Committed: https://skia.googlesource.com/skia/+/746b792a9aad1230ab69158a51c49b2e5437d95b TBR=djsollen@google.com,jvanverth@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2072563002
* Enable viewer in non-Vulkan buildsGravatar jvanverth2016-06-15
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2067023002 Review-Url: https://codereview.chromium.org/2067023002
* Add Xlib support to viewerGravatar jvanverth2016-05-23
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=1999213002 Review-Url: https://codereview.chromium.org/1999213002
* Move inval dedup to Window for wider usages.Gravatar liyuqian2016-05-23
| | | | | | | | | | | It turns out that the inval dedup is not just useful for Android. Hence we move it up to the Window level so more OSes such as Linux, Windows can also use it. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2001153002 Review-Url: https://codereview.chromium.org/2001153002
* Add OpenGL context to Viewer.Gravatar jvanverth2016-05-20
| | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1978573003 Committed: https://skia.googlesource.com/skia/+/56a11e4d6f3d436a3c2497c9c9e71a117d78a93f Review-Url: https://codereview.chromium.org/1978573003
* Revert of Add OpenGL context to Viewer. (patchset #7 id:120001 of ↵Gravatar jvanverth2016-05-18
| | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1978573003/ ) Reason for revert: sk_app/WindowContext.cpp is missing. Need to add file and resubmit. Original issue's description: > Add OpenGL context to Viewer. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1978573003 > > Committed: https://skia.googlesource.com/skia/+/56a11e4d6f3d436a3c2497c9c9e71a117d78a93f TBR=brianosman@google.com,bsalomon@google.com,djsollen@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/1990893002
* Add OpenGL context to Viewer.Gravatar jvanverth2016-05-17
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1978573003 Review-Url: https://codereview.chromium.org/1978573003
* Add flexible keybinding/command system to sk_app.Gravatar brianosman2016-05-10
| | | | | | | | | | | | | | | | | | | | | | Viewer demonstrates use: Just create an instance of CommandSet, register with the window, and add commands. Hopefully, we can keep all commands in one place, and get some nice side-benefits. With this framework, if you want to add a new command, you are only required to add code in ONE place. And you get added to the help screen, for free. CommandSet automatically binds 'h' to cycle through the help modes. (Functional grouping is most useful for general use, but the other mode is nice to know what a key does, or to find an unused key for a new feature). Grouped by function: https://screenshot.googleplex.com/G5h3f52wFKu.png Alphabetical by key: https://screenshot.googleplex.com/nZiopabLKJ6.png BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1955293002 Review-Url: https://codereview.chromium.org/1955293002
* Add sRGB mode toggle to Viewer.Gravatar brianosman2016-05-06
| | | | | | | | | | Unlike SampleApp, this just switches out the format of the window surface (and then adjusts the gamma-correct flag on the SkSurfaces). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1950983007 Review-Url: https://codereview.chromium.org/1950983007
* More refactoring for ViewerGravatar jvanverth2016-05-05
* Move support files into sk_app and main files up to top directory * Rename VulkanTestContext and create WindowContext parent class * Place VulkanWindowContext et al. in sk_app namespace. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1944413005 Review-Url: https://codereview.chromium.org/1944413005