Git Product home page Git Product logo

Comments (7)

ocornut avatar ocornut commented on May 27, 2024

Haven't looked in details yet but linking to #6669, #6971, #3258

from imgui.

ramoops avatar ramoops commented on May 27, 2024

it kinda looks like it's half-pixel shorter, so I don't think that's the same problem that you linked

from imgui.

ramoops avatar ramoops commented on May 27, 2024

oops, accidentally closed issue as resolved

from imgui.

ocornut avatar ocornut commented on May 27, 2024

Btw your screenshot is hard to read because it is upscaled with filtering, and you are not stating in very specific terms what your problem is. It would be easier if you were more specific, as I personally have to deal with hundreds of concurrent topics and coming back to one later when the issue isn't clear makes it harder to help.

from imgui.

ramoops avatar ramoops commented on May 27, 2024

yep I'll try to take normal screenshot, the point is that the {0, 0, 0, 255} (outline) rect looks inconsistent, right line looks bigger than left. when I'm rendering horizontal rect - it's surprisingly fine

from imgui.

ramoops avatar ramoops commented on May 27, 2024

hm. strange enough, screenshot zoomed in mspaint looks absolutely normal, but on screen it looks inconsistent, so that isn't imgui issue then, sorry
image
(there's right bar bigger than left)
image_2024-05-07_11-56-20

from imgui.

ruby3141 avatar ruby3141 commented on May 27, 2024

That's subpixel problem, and it's out of imgui's scope.

As you can see, one pixel on your screen is actually consists of three subpixels, ordered red, green and blue.
And because three subpixels are not in the same physical position inside a pixel,
objects colored in pure red on your monitor is actually out of center in left by 1/3 pixel.
(And black stripe on the right side is 5 subpixel in width, not 3.)

It can be compensated using subpixel rendering.
Untitled
With your monitor black stripe on both side of red stripe will look in same thickness,
but actually right one has one black and one cyan pixel.

The problem is, it's hardware dependant.
If you compensate it on one monitor, the result will look like crap when you show it on another monitor.
(For example, mine has triangular subpixel, so my red is half a pixel up out of center.)

To do subpixel rendering, first you need to know what subpixel arrangement the monitor use is,
That's why it's usually integrated in OS level with narrow scope of usage(like Windows ClearType text renderer),
and why your issue is unsolvable in imgui's level.

from imgui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.