Jump to content



Photo

Vista PixelGetColor() Bug


  • Please log in to reply
18 replies to this topic

#1 corz

corz

    Prodigy

  • Active Members
  • PipPipPip
  • 164 posts

Posted 11 October 2007 - 02:53 AM

I got in some quality Vista bug-tracking time today, for my own apps,
but it looks like it's not me, after all..

AutoIt         
#include <GuiConstants.au3> #cs     Vista GUICtrlSetBkColor() / PixelGetColor() Bug Demo     This appears to be some kind of incompatability between either     GUICtrlSetBkColor() or PixelGetColor(), and the Vista Aero     drawing routines.  I'm guessing the latter.     In XP, and in Vista with Aero disabled (using a classic or standard theme)     this updates *instantly*, certainly fast enough to use as a live magnifier     for my color pickin chooser, updating as the mouse hovers around.     With an Aero appearance enabled, a single update takes a few seconds!     It's many thousands of times slower, at any rate. #ce AutoItSetOption("GUICoordMode", 1) AutoItSetOption("GUIOnEventMode", 1) HotKeySet("{ESC}","DoQuit") $gui = GUICreate("Vista GUICtrlSetBkColor() Bug Demo", 150, 130) GUISetOnEvent($GUI_EVENT_CLOSE, "DoQuit") GUICtrlCreateLabel("Hover the mouse around your screen, with and without Aero enabled. Hmm..", 10, 70, 135, 70) $cpc_mag_top = 10 $do_quit = 0 $mag_x = 10 $mag_size = 5 $count = 0 global $mag_block[200] for $iterX = 0 to 49 step $mag_size     for $iterY = 0 to 49 step $mag_size         $mag_block[$count] = GUICtrlCreateLabel("", $iterX+$mag_x, $iterY+$cpc_mag_top, $mag_size, $mag_size)         GUICtrlSetBkColor(-1, 0x00ff00)         $count += 1     next next GUISetState() ; main loop.. while not $do_quit     sleep(75)     cpc_UpdateMag() wend func cpc_UpdateMag()     $MousePos = MouseGetPos()     $count = 0     for $iterX = -5 to 4         for $iterY = -5 to 4             GUICtrlSetBkColor($mag_block[$count], PixelGetColor($MousePos[0]+$iterX, $MousePos[1]+$iterY))             $count += 1         next     next endfunc exit ; bye! func DoQuit()     $do_quit = 1 endfunc


;o)
(or
nothing is foolproof to the sufficiently talented fool..





#2 SmOke_N

SmOke_N

    It's not what you know ... It's what you can prove!

  • Moderators
  • 15,729 posts

Posted 11 October 2007 - 02:57 AM

http://www.autoitscript.com/forum/index.ph...ghlite=%2BVista
Happy reading...

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.


#3 corz

corz

    Prodigy

  • Active Members
  • PipPipPip
  • 164 posts

Posted 11 October 2007 - 03:17 AM

The only thing I could find of relevance was this thread..
http://www.autoitscript.com/forum/index.php?showtopic=46931

Which lead me to this thread..
http://www.autoitscript.com/forum/index.php?showtopic=41428

Which states it is fixed. Which it clearly isn't.
Is there a better thread you could perhaps point me to?

;o)
(or
nothing is foolproof to the sufficiently talented fool..

#4 SmOke_N

SmOke_N

    It's not what you know ... It's what you can prove!

  • Moderators
  • 15,729 posts

Posted 11 October 2007 - 03:26 AM

The only thing I could find of relevance was this thread..
http://www.autoitscript.com/forum/index.php?showtopic=46931

Which lead me to this thread..
http://www.autoitscript.com/forum/index.php?showtopic=41428

Which states it is fixed. Which it clearly isn't.
Is there a better thread you could perhaps point me to?

;o)
(or

No not really, I get tired of searching for folks... I don't even use Vista or support for anyone that does with anything I write until Vista can start supporting itself.

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.


#5 corz

corz

    Prodigy

  • Active Members
  • PipPipPip
  • 164 posts

Posted 11 October 2007 - 03:56 AM

Thanks anyway; I resuscitated the [FIXED] thread, so perhaps someone will see that.

I know what you mean about Vista. I spent most of the afternoon playing with it *Yeuch!*. I quite like the Aero theme, but as for everything else... It's good news for the Linux community, though. Maybe the AutoIt crew should start porting, now.

;o)
(or
nothing is foolproof to the sufficiently talented fool..

#6 SmOke_N

SmOke_N

    It's not what you know ... It's what you can prove!

  • Moderators
  • 15,729 posts

Posted 11 October 2007 - 04:28 AM

Thanks anyway; I resuscitated the [FIXED] thread, so perhaps someone will see that.

I know what you mean about Vista. I spent most of the afternoon playing with it *Yeuch!*. I quite like the Aero theme, but as for everything else... It's good news for the Linux community, though. Maybe the AutoIt crew should start porting, now.

;o)
(or

http://www.autoitscript.com/forum/index.ph...st&p=397923

There Jon states with Aero and GetPixel(), that it was monsterously slow. As far as I know, they still use GetPixel for PixelGetColor. The fix you see being referred to I believe was for "SetStaticColor" for the tabs, not PixelGetColor itself.

The only work around I can think of for that, I don't think would be much faster for single pixel gathering.

Edit:
So the "Bug" isn't with AutoIt in other words.

Edited by SmOke_N, 11 October 2007 - 04:28 AM.

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.


#7 corz

corz

    Prodigy

  • Active Members
  • PipPipPip
  • 164 posts

Posted 11 October 2007 - 04:52 AM

To the AutoIt coder, it matters not what internal function is used, just that the exeternal one, the one in the manual, does what it's supposed to do. Saying it's a bug with Aero, or whatever, is efette; it is inside AutoIt that the fix will need to occur. No?

If there's a work-around you know of, I'd be happy to use that in the meantime.

;o)
(or
nothing is foolproof to the sufficiently talented fool..

#8 SmOke_N

SmOke_N

    It's not what you know ... It's what you can prove!

  • Moderators
  • 15,729 posts

Posted 11 October 2007 - 05:00 AM

To the AutoIt coder, it matters not what internal function is used, just that the exeternal one, the one in the manual, does what it's supposed to do. Saying it's a bug with Aero, or whatever, is efette; it is inside AutoIt that the fix will need to occur. No?

That's a rediculous statement... that's like saying that just because autoit can do something in one OS environment, it should it in all!!

If there's a work-around you know of, I'd be happy to use that in the meantime.

;o)
(or

I don't see it being faster, to be honest... I'll have to ask Valik, as I've never even seen a Vista OS.

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.


#9 corz

corz

    Prodigy

  • Active Members
  • PipPipPip
  • 164 posts

Posted 11 October 2007 - 05:06 AM

That's a rediculous statement... that's like saying that just because autoit can do something in one OS environment, it should it in all!!

Actually, that is pretty close to what I expect!

It's not like running an XP-capable app on Windows 98. In that situation, of course we wouldn't expect new functionality to work on an older OS, but that's not the case here. It's clear that PixelGetColor() is *supposed* to work in vista, it's just got some crazy bug *somewhere* that makes it operate thousands of times slower, thereby making it unusable.

Do we agree that this is a bug?
If so, I'm fairly sure the bug isn't in my code, so I'm forced to accept the logic that it must be elsewhere.

If it's in Windows, I'll mail M$, no problem, but I do feel the need to report it *somewhere*.

;o)
(or
nothing is foolproof to the sufficiently talented fool..

#10 SmOke_N

SmOke_N

    It's not what you know ... It's what you can prove!

  • Moderators
  • 15,729 posts

Posted 11 October 2007 - 01:08 PM

That's a rediculous statement... that's like saying that just because autoit can do something in one OS environment, it should it in all!!

Actually, that is pretty close to what I expect!

It's not like running an XP-capable app on Windows 98. In that situation, of course we wouldn't expect new functionality to work on an older OS, but that's not the case here. It's clear that PixelGetColor() is *supposed* to work in vista, it's just got some crazy bug *somewhere* that makes it operate thousands of times slower, thereby making it unusable.

Do we agree that this is a bug?
If so, I'm fairly sure the bug isn't in my code, so I'm forced to accept the logic that it must be elsewhere.

If it's in Windows, I'll mail M$, no problem, but I do feel the need to report it *somewhere*.

;o)
(or

Your missing the point. Where does the function GetPixel come from? What Software manufacturer are you having a problem with? Get the picture?

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.


#11 corz

corz

    Prodigy

  • Active Members
  • PipPipPip
  • 164 posts

Posted 11 October 2007 - 05:02 PM

Don't know.
Huh?
No.

;o)
(or
nothing is foolproof to the sufficiently talented fool..

#12 SmOke_N

SmOke_N

    It's not what you know ... It's what you can prove!

  • Moderators
  • 15,729 posts

Posted 11 October 2007 - 05:51 PM

Don't know.
Huh?
No.

;o)
(or

You're equating an issue with GetPixel function (As you know it PixelGetColor).
http://msdn2.microsoft.com/en-us/library/ms532282.aspx

Which is used in the GDI32.DLL provided by Microsoft.

You're complaining that there is an AutoIt Bug with Aero and Vista, another Microsoft product.

So, you are saying that AutoIt should fix a Microsoft issue (GDI32.dll + GetPixel and Aero + Vista).

I don't see how you can be so boastful as to say it's an AutoIt bug... Especially if you did a google search, you'd see that every language out there is having issues and complaining about it, and MSFN even admits to there being an issue, and suggest reading it in Large blocks (which was my thought), but then you take time to read it, decipher it, and only pull one pixel out, so I'm not sure how much faster (if at all) that would be.

And it would have to be case specific to Vista and Aero, as stated it works fine in Classic Mode... so to appease you and your Aero Vista obsession, you are saying they should write an alternate function for it basically...

Having said all of that, my thought is you should be complaining to the actual "Bug Maker" themselves.

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.


#13 corz

corz

    Prodigy

  • Active Members
  • PipPipPip
  • 164 posts

Posted 11 October 2007 - 06:53 PM

I use AutoIt to make stuff, specifically because I DO NOT want to know about the inner workings of the Windows API. GDIwhat? I think you will find, I am in the majority, and that is why AutoIt is so popular. Why would I do a Google search for an AutoIt function? If there was a known issue with Vista+Aero, it would surely be in the AutoIt manual for that function, or outlined prominantly here at autoitscript.com. I imagined that between those two resources I had everything I needed to code AutoIt.

I wasn't saying that anyone should fix anything, specifically; I'm just doing my bit, and reporting a bug. That's how it begins; then folk get pointed in the right direction, until, at the end of the process, the person responsible for the code in question, fixes their code. I'm always truly grateful of bug reports. Your whole defensive position puzzles me. It's not boastful to (correctly) assume that there is nothing wrong with *my* code? Is it?

As for my Vista "obsession", I don't even use Vista! Nor do I plan to. I simply want to get the issues fixed for the people here in this forum, who have made the effort to report these bugs to me.

Anyways, now I know exactly where the trouble lies, thanks, I'll be in touch with *them*.

;o)
(or
nothing is foolproof to the sufficiently talented fool..

#14 SmOke_N

SmOke_N

    It's not what you know ... It's what you can prove!

  • Moderators
  • 15,729 posts

Posted 11 October 2007 - 07:17 PM

I use AutoIt to make stuff, specifically because I DO NOT want to know about the inner workings of the Windows API. GDIwhat? I think you will find, I am in the majority, and that is why AutoIt is so popular. Why would I do a Google search for an AutoIt function? If there was a known issue with Vista+Aero, it would surely be in the AutoIt manual for that function, or outlined prominantly here at autoitscript.com. I imagined that between those two resources I had everything I needed to code AutoIt.

I wasn't saying that anyone should fix anything, specifically; I'm just doing my bit, and reporting a bug. That's how it begins; then folk get pointed in the right direction, until, at the end of the process, the person responsible for the code in question, fixes their code. I'm always truly grateful of bug reports. Your whole defensive position puzzles me. It's not boastful to (correctly) assume that there is nothing wrong with *my* code? Is it?

As for my Vista "obsession", I don't even use Vista! Nor do I plan to. I simply want to get the issues fixed for the people here in this forum, who have made the effort to report these bugs to me.

Anyways, now I know exactly where the trouble lies, thanks, I'll be in touch with *them*.

;o)
(or

Well your persistent to say the least... and I admit in getting frustrated, more so with myself, in trying to make you understand that AutoIt is a ***Windows Operating System*** tool. Therefore many of it's limitations with certain functions, stem directly from the Windows OS itself.

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.


#15 corz

corz

    Prodigy

  • Active Members
  • PipPipPip
  • 164 posts

Posted 11 October 2007 - 08:56 PM

Gotcha!

Thanks, man. I guess with AutoIt getting so comprehensive these days, it's hard not to think of it as as a full-blown, independent development environment. Reality check appreciated.

;o)
(or
nothing is foolproof to the sufficiently talented fool..

#16 jpm

jpm

    a Real GUI/debug lover

  • Developers
  • 8,925 posts

Posted 24 December 2007 - 11:01 PM

I cannot see any problem under Vista Aero with a Centrino Duo

#17 Jon

Jon

    Up all night to get lucky

  • Administrators
  • 9,529 posts

Posted 24 December 2007 - 11:16 PM

I cannot see any problem under Vista Aero with a Centrino Duo

Have you got glass/transparency running? No GDI functions are hardware accelerated anymore under Windows Vista so they really take a massive performance penalty hit.

#18 jpm

jpm

    a Real GUI/debug lover

  • Developers
  • 8,925 posts

Posted 25 December 2007 - 12:03 AM

Have you got glass/transparency running? No GDI functions are hardware accelerated anymore under Windows Vista so they really take a massive performance penalty hit.

How to have them running?

#19 jpm

jpm

    a Real GUI/debug lover

  • Developers
  • 8,925 posts

Posted 25 December 2007 - 12:06 AM

Oh I see the perf is really bad




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users