From: Kevin B. <Co...@co...> - 2001-04-13 02:03:31
|
ra...@ra... wrote: > > > On 12 Apr, Kevin Brosius scribbled: > > ra...@ra... wrote: > > > > > > > > > > (snip) > > > > > > > > > > I also noticed a couple things I didn't expect so either I'm using Evas > > > > > wrong or there're a couple bugs... > > > > > > > > have you tryed evas_set_output_viewport ? > > > > when you resize an evas you need to call this function also > > > > > > you dont NEED to chaneg the viewport if u dont want evas rescaling your > > > default viewport (0,0, 1.0, 1.0) to match the output window size > > > (exactly like opengl works) - but in general I do this so i have 1:1 > > > evas world oocrdinates and screen pixel coordinates :) > > > > > > > Hmm, something odd is going on... > > > > In the x_poly2 sample, I'm using evas_new_all to setup a 200,100 evas, > > then using evas_set_output_size to make the evas rendering area larger > > when an expose event says the w or h is larger than the current window. > > first mistake. you arent going to handle resizing DOWN - only up. use > configurenotify's to know when you've been resized. > Yeah... > > What's odd is, I have 2 objects, an image and a polygon. The image > > scales with the evas (gets larger and moves physically in the direction > > of window resizing) while the polygon doesn't move or scale at all. > > But, it looks like the polygon's event region does move, as event > > capture for the polygon occurs outside the polygon's previous bonding > > rect... > > oooh... hmmm.. hmmmmmm let me look into this... :) > aaah yes my bad.. i err.. forgot to scale the output coordinates of > primitives other than images for viewport changes... fixed in CVS :) > > > Am I nuts? > > yes. i dont see how i could say now :) > Set myself up for that one, thanks ;-) > > Second question... Given the above case, I tried using > > evas_set_output_viewport, but don't understand what it does. For > > example, I assumed that initial viewport settings for the 200,100 evas I > > used are 0,0,200,100. (Okay, just ran another test, I see what I was > > doing wrong.) > > yup it is. > an evas is an infinite space (well all the space you can hold in a > dobule per x,y axis) - the viewport determines whihc section of space > your are looking at with the canvas ie: > > | > | > | > | > | > |0,0 > --------------+--------------- > | > | +------+ > | | | > | | | > | +------+ > | > | > | > > the viewport determines a rectangle as above of the canvas we look at. > normally this rectangle is located at 0,0 with widht and height the > size fo the canvas in pixels - but you dont have to keep it this way. > you could use this for example to scroll around a large world of > objects simply by changing the viewport coordinates - or zoom in and > out of a world (canvas) of obejcts simply by chanign the viewport > size.... output "rectangle" and the bit of the canavs you are looking > at are separate things. if the match (ie viewport at 0,0 widht and > heigh the same as the window siz ein pixels u have an exact 1:1 match - > i personalyl prefer to use this, but you are not limited to it) > This would be good for the docs... Makes perfect sense now. > > So, evas_set_output_viewport will cause it not to scale the evas if > > passed the same w,h params as the evas_set_output_size function? Where > > as setting the size will scale the evas? > > see above :) > > > I'll have to fix the x_poly2 sample so it does what I wanted... Is > > polygon scaling broken? > > yup.. fixed now :) cvs update :) > Much better, poly scaling! But... Now the poly scales but the event region seems not to match, maybe scaling at a smaller factor? I've attached my sample app. If you click on the poly it should print out a 'mouse_down' message. Clicking on the background closes the app. When I drag and size it up to about 2x, clicking in the lower right of the poly closes the app, while clicking in some area in the upper left will generate the poly event. -- Kevin |