diff options
author | 2016-02-20 21:58:56 +0100 | |
---|---|---|
committer | 2016-02-20 21:58:56 +0100 | |
commit | e57c90084c5d1dd9f6cdb0bbbf8782dc4f369cda (patch) | |
tree | 650be9617f5dd57cce30eb78e283e15c149a0472 /src/osd/modules/render/drawd3d.h | |
parent | d15d53c728b4848e3ed74d66b9ab446811e1acee (diff) |
Quality and Performance improvements
- HLSL now uses NPOT sized target surfaces (breaks compatibility with
graphics cards based on R300/R400/NV30 and older)
- HLSL target surfaces now have the size of the screen canvas
- removed HLSL pre-scale factor
- HLSL now uses a sharp bilinear interpolation to pre-scale textures to
screen canvas size, based on [Themaister's] implementation
- improved overall performance (based on the previously required
pre-scale factor, you might notice a 5-50% speed-up depending on your
graphics card, more if you used a higher pre-scale factor)
- improved shadow mask quality (pixel-perfect) in screen-mode
- fixed half source texel offset of bloom level alignment
- removed ./hlsl/artwork_support folder
- all shaders after pre-scale are now based on screen coordinate
(workaground, till both raster and vector pass can work on texture
coordinates)
- disabled distortion shader for more than one screen and for artworks
in full mode, does not affect artworks in copped mode (workaground, till
both raster and vector pass can work on texture coordinates)
- moved compute_texture_size() from texture_info to texture_manager (nw)
Diffstat (limited to 'src/osd/modules/render/drawd3d.h')
-rw-r--r-- | src/osd/modules/render/drawd3d.h | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/osd/modules/render/drawd3d.h b/src/osd/modules/render/drawd3d.h index b5672be91ee..9c2014ead39 100644 --- a/src/osd/modules/render/drawd3d.h +++ b/src/osd/modules/render/drawd3d.h @@ -38,7 +38,7 @@ public: cache_target() { } ~cache_target(); - bool init(renderer *d3d, base *d3dintf, int width, int height, int prescale_x, int prescale_y); + bool init(renderer *d3d, base *d3dintf, int target_width, int target_height); surface *last_target; texture *last_texture; @@ -65,16 +65,13 @@ public: render_target() { } ~render_target(); - bool init(renderer *d3d, base *d3dintf, int width, int height, int prescale_x, int prescale_y); + bool init(renderer *d3d, base *d3dintf, int width, int height, int target_width, int target_height); int next_index(int index) { return ++index > 1 ? 0 : index; } // real target dimension int target_width; int target_height; - int prescale_x; - int prescale_y; - // only used to identify/find the render target int width; int height; @@ -82,10 +79,10 @@ public: int screen_index; int page_index; - surface *prescale_target[2]; - texture *prescale_texture[2]; - surface *native_target[2]; - texture *native_texture[2]; + surface *target_surface[2]; + texture *target_texture[2]; + surface *source_surface[2]; + texture *source_texture[2]; render_target *next; render_target *prev; |