Jump to content

[1.7.2] GUI Scaling Questions


Thornack

Recommended Posts

So I Have created a GUI and  I am have the following scaling issues (see The Following Images For explanation) IGYTHcu.jpg

 

My goal is to have the GUI scale so that its border remains a constant value from each edge  of the minecraft window (lets say from the top and bottom edges the GUI will remain some number (x) pixels away, and for the left and right edges it will remain some other number (y) pixels away. So that when the minecraft window is scaled the GUI gets larger and smaller smoothly and remains in the same place relative to the screen size and keeps its aspect ratio.

 

The problem is that The Minecraft Screen scales weirdly (as indicated in the photo examples) and I cannot seem to scale the item slots that have to be 18 x 18 virtual pixels to work it seems. But somehow as you can see in the pictures the item slots are scaled by minecraft and I am not sure how this works.

 

Definitions: In the image screenSize equals this.width and this.height, and guiRECT is the green GUI Rectangle which is a constant size of 200 x 180 and the x and y offsets are calculated so that the GUI is always centered in the middle of the screen.

 

Also, why does the apparent size of the green rectangle vary so oddly/largely and isnt scaled smoothly

Link to comment
Share on other sites

And to clarify, I want my GUI (which is a custom Inventory that contains some of the 18 x 18 pixel item slots) to re-size as the Minecraft Window Size changes so that it remains a constant distance from the edge of the screen and also re-sizes The item slots as well. (to prevent the GUI from bleeding outside of the playable area (so that it remains use-able for different screen resolutions) and to keep it's configuration relative to other GUI's (that I wish to introduce once this problem is solved) relatively constant. Hopefully This clears up my goal.

Link to comment
Share on other sites

What you could do is reacting to the current GUI scale that you can get in the following way:

ScaledResolution scaledresolution = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight);
int guiScale = scaledresolution.getScaleFactor();

You'd just have to alter the size of your quad. It won't work for buttons and the other elements though, unless you are reverting the scale with glScalef which will screw the whole mouse interaction, you'd have to manually call the methods on these then.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.