Commit Graph

5926 Commits

Author SHA1 Message Date
baldurk d57cc1b188 Add more consistency to docking panels and widgets
* Dock panels shouldn't have any frame border or anything like that.
* They should have an external margin of 3 pixels at their border,
  but then no further margins on the layouts (like sub-controls for
  the pipeline state views.
* Toolbars should be Raised & Panel frames. Later we'll replace them
  with actual QToolBars to better customise the painting.
2017-07-28 19:06:46 +01:00
baldurk 541aa23a93 Add menu rendering (both menu bars/menus and popup menus) 2017-07-28 19:06:46 +01:00
baldurk 89945f711d Switch to SVG topology diagrams
* We need to custom paint the SVG at the right devicepixelratio because
  Qt seems to be busted at scaling up - nothing I can see causes the
  SVG to be rendered at higher than it's default resolution, so you end
  up with plain bilinear upscale.
* Since we're doing custom palette swap anyway, it's not much harm to
  just render ourselves, as we already basically had a dependency on
  QtSvg - just need to add the include files to the dependencies.
2017-07-28 19:06:46 +01:00
baldurk 9434b622a1 Make sure that pan remains unchanged when setting scrollbar range 2017-07-28 19:06:46 +01:00
baldurk 58d6e2540d Only highlight enabled toolbuttons on hover, not disabled ones 2017-07-28 19:06:46 +01:00
baldurk c19b4fb0a3 Add some basic style hints for menus and message boxes 2017-07-28 19:06:46 +01:00
baldurk 4591457ad7 Set up custom splitters, for now just empty rects.
* May need to revisit this in future depending on what outlining we have
  for individual docking widgets
2017-07-28 19:06:45 +01:00
baldurk 01c1365224 Don't draw any frames for status bar items 2017-07-28 19:06:45 +01:00
baldurk 719b7ea478 Fill in the background even for line edits without frames 2017-07-28 19:06:45 +01:00
baldurk a0bee29162 Make sure not to account for an invisible frame when sizing line edits 2017-07-28 19:06:45 +01:00
baldurk b63c91da0f Remove fake box frames around find/goto. Superceded by custom style 2017-07-28 19:06:45 +01:00
baldurk c471153770 Add styled progress bars, including animations for the 'infinite' case 2017-07-28 19:06:45 +01:00
baldurk a6f0d07e09 Remove most stylesheet use as this messes with a custom style
* Use palettes where a certain colour is needed.
* Still need some solution for table borders in grid layouts
2017-07-28 19:06:44 +01:00
baldurk a4e4c1fd5d Don't underline shortcuts by default - we'll handle alt-press later 2017-07-28 19:06:44 +01:00
baldurk 4545ed5bb5 Add custom rendering for spinboxes 2017-07-28 19:06:44 +01:00
baldurk 5ceffa1d1d Custom tooltip panels 2017-07-28 19:06:44 +01:00
baldurk 048e2c0102 RDStyle is based on QCommonStyle
* This gives us a consistent baseline to start from and ensures that any
  things we don't customise and leave to defaults will still be the same
  wherever we are running.
2017-07-28 19:06:44 +01:00
baldurk 430cdad282 Fix mnemonics showing up in text drawing 2017-07-28 19:06:44 +01:00
baldurk ad79e2a240 Add custom rendering for combo boxes - also covers frames, lines, items 2017-07-28 19:06:43 +01:00
baldurk 9454ef48df Draw custom scrollbars 2017-07-28 19:06:43 +01:00
baldurk e7fd2e24db Draw checkbox/radio labels ourselves 2017-07-28 19:06:43 +01:00
baldurk 9d67e0f2d9 Add custom drawing for group boxes 2017-07-28 19:06:43 +01:00
baldurk 1cda979d8f Clear QPixmapCache if style/palette changes (Qt should do this really) 2017-07-28 19:06:43 +01:00
baldurk cd15947f47 Do our own sizing of the controls we're painting 2017-07-28 19:06:43 +01:00
baldurk 2699ca46e5 Tweak highlight borders 2017-07-28 19:06:42 +01:00
baldurk 1e1cefb1bb Extract out common code for pushbuttons, to re-use for textbox borders. 2017-07-28 19:06:42 +01:00
baldurk 573d94adf0 Add custom drawn radio and check boxes 2017-07-28 19:06:42 +01:00
baldurk bbda9de011 Tweak disabled colours for palettes 2017-07-28 19:06:42 +01:00
baldurk 03cf4d2ce3 Customise button rendering in RDStyle 2017-07-28 19:06:42 +01:00
baldurk c601414e39 Add light and dark palettes to RDStyle 2017-07-28 19:06:42 +01:00
baldurk 26711eca2e Use MainWindow palette for tooltips 2017-07-28 19:06:41 +01:00
baldurk 247382af51 Fix a few widgets to properly respond to and use style changes 2017-07-28 19:06:41 +01:00
baldurk 3ea74aa73b Treeview expanders shouldn't be Dark, they should be Text 2017-07-28 19:06:41 +01:00
baldurk 9a782158fd Fork RDStyle to RDTweakedNativeStyle
* The idea is tha this style won't change the palette and will just do
  some minimal additions/changes to whatever the native style is, to
  work around some rough spots.
2017-07-28 19:06:41 +01:00
baldurk 6cedd3755b Add custom rendering of tab close buttons 2017-07-28 19:06:41 +01:00
baldurk 2dc577a02c Update toolwindowmanager to d520d7a 2017-07-28 19:06:41 +01:00
baldurk 3a4327b664 Tweak RangeHistogram painting to better adjust to palettes 2017-07-28 19:06:40 +01:00
baldurk 60ba617f38 Add custom branches/indicators for tree controls 2017-07-28 19:06:40 +01:00
baldurk b6a73a4bb0 Draw custom coloured tree widget lines over the top of built-in style 2017-07-28 19:06:40 +01:00
baldurk 83c413129e Add the beginnings of a unified cross-OS style
* First thing changed, auto-raise toolbuttons don't sink when enabled,
  but remain flat and highlighted.
2017-07-28 19:06:40 +01:00
baldurk 8aaa44d624 Fill out SPIR-V bytes array for compute pipelines 2017-07-28 19:06:40 +01:00
baldurk 7f6dc8d91c Initialise unread message count to 0 2017-07-28 19:06:40 +01:00
baldurk 58d40fdc26 Don't show 0.0 as the default drawcall duration 2017-07-28 19:06:39 +01:00
baldurk f3cae89df7 Don't treat combined image/sampler resources as samplers and discard 2017-07-28 19:06:39 +01:00
Janos Pantos 7d46b21fd6 Fix binary compatibility issue caused by 310ada8
Move the new multi-view chunk types to the end of GLChunkType enum.
2017-07-28 11:06:21 -07:00
baldurk fec5b60c67 Use the cached resource ResourceId inside views
* Slightly faster than calling to get the resource in WrappedView1 then
  looking up its ID.
2017-07-27 16:17:25 +01:00
baldurk 61db91eb42 Cache whether the current pipeline is partially-writing to OM targets
* This is updated whenever the OM bindings change, or viewport/scissors
  change. Much lower frequency than per-draw where we were calculating
  this information during capture.
2017-07-27 16:17:25 +01:00
baldurk 9f172daffc Don't mark renderstate dirty on each draw, mark dirty on bind
* Note this also means we can't mark resources clean when clearing them
  since you could bind -> clear -> draw and the resource wouldn't be
  re-marked dirty. This isn't much of a loss in precision though since
  usually any resource that's cleared is going to be dirty again in
  short order, so there's no point trying to track it in the hopes that
  it might stay clean.
* For the most part the code was doing this, but there were a couple of
  inconsistencies along the way.
2017-07-27 16:17:25 +01:00
baldurk d27c15a0ab Refactor render state to use cached resource ranges for views
* We also check for null resources and early out before fetching or
  constructing the range and doing the intersection test.
2017-07-27 16:17:25 +01:00
baldurk eba2c65870 Move ResourceRange out of the render state, and cache it in views
* We also store depth & stencil read-only state for DSVs and SRVs.
2017-07-27 16:17:25 +01:00