|
All opengl interative applications are trying to draw as many frames as possible. Taking up 100% CPU is quite normal for graphics intensive apps using either Opengl or DirectX.
If you're worried that some other apps or threads in the same Opengl app are not getting enough time slices insert a Sleep(0) after drawing doing a glSwapBuffer() call. This will give the rest of the time slice to any other thread which needs it.
HTH
Brian Azzopardi
bibamus, edamus, cras moriemur [eat, drink, for tomorrow we die]
|
|
|
|
|
Yes, just as what Briane has said, most of the OpenGL example is written for Win32, and the DrawGLWindow is called when there is no message waiting in the message queue. That's why it's taking up 100% CPU.
If you are developing a game, it's usual to have a Sleep(xxx) after the DrawGLWindow is called, so that you have a constant display update frequency.
|
|
|
|
|
How can I determine the horizontal/vertical spacing between characters?
The real deal is:
Is there some other GDI beside GetTextExtent() that can calculate text size? GetTextExtent() wont calculate the '\n' char...
10xxx
--BlackSmith--
"The roof is on fire, we don't need no water, let the MF burn", BHG.
|
|
|
|
|
BlackSmith wrote:
Is there some other GDI beside GetTextExtent() that can calculate text size? GetTextExtent() wont calculate the '\n' char...
DrawText with DT_CALCRECT will do. I'm assuming you want to get the height of multi-line text.
Tomasz Sowinski -- http://www.shooltz.com
"Yields falsehood when preceded by its quotation" yields falsehood when preceded by its quotation.
|
|
|
|
|
Does anybody know how?
I've looked in registry but not successful.
Do I need to use some network protocol (snmp, ..)?
Thanks,
M.
|
|
|
|
|
If you're using W2000 or XP, you can use the DnsQuery API from the Platform SDK.
DNS_STATUS WINAPI DnsQuery (<br />
LPSTR lpstrName,<br />
WORD wType,<br />
DWORD fOptions,<br />
PIP4_ARRAY aipServers,<br />
PDNS_RECORD *ppQueryResultsSet,<br />
PVOID *pReserved <br />
);
Specify DNS_TYPE_WINS as wType . Never tried that but it should work The ppQueryResultsSet contains DNS_WINS_DATA structures.
Look! They have the Internet on computers now! (Homer J. Simpson)
|
|
|
|
|
Sorry, I use Windows NT.
Marek.
|
|
|
|
|
At last solution you could execute "ipconfig /all", catch the output and parse it. Of course, I also would prefer a nice API call, but if you fail to find something, this may be an easy and pragmatic solution.
--
Daniel Lohmann
http://www.losoft.de
(Hey, this page is worth looking! You can find some free and handy NT tools there )
|
|
|
|
|
Thanks, I've considered this solution.
But the problem is that I can't run ipconfig without opening its console window (or, if I can, how?).
This is real project for customer, not only for my home usage.
M.
|
|
|
|
|
Hi,
I have a View which background colour is black, but when I use TextOut to display some texts on that view. There have a white box wrapped the text, So, I want to ask how to make the white box transparent/disappear. (i.e.It just display the text only.) Thx!!!
|
|
|
|
|
dc.SetBkMode(TRANSPARENT);
Tomasz Sowinski -- http://www.shooltz.com
"Yields falsehood when preceded by its quotation" yields falsehood when preceded by its quotation.
|
|
|
|
|
you can use ExtTextOut with nOption=ETO_OPAQUE and SetBkColor(RGB(0, 0, 0)) before it
nobody is perfect
|
|
|
|
|
I would first like to thank you for reading this post. I am completly new to Visual C++ Programming . I have no programming experiance. I want to learn C programming. I use the Visual C++ Program from Visual Studios. What I need is a webpage that has a tutorial for complete beginners like me that can help me start. Thanks again for reading this. So please if you know a good tutorial for complete beginners post it here, I appreciate the help, thanks!
The serious newbie programmer.
|
|
|
|
|
|
Hi
all,
How can i put The Application Icon in system tray.
Thanks in Advance
|
|
|
|
|
|
|
Thanks For both replies I am trying these and i will comeback with good result......
|
|
|
|
|
Hi,
I have a worker thread doing a lengthy operation during which it reads data using ReadFile. If I try to abort the operation and call AfxEndThread ReadFile tries to read data until the time limit is reached. Is it possible to stop ReadFile or is there a better way to wait for it to finish than Sleep? The problem with Sleep is that I can't set those time limits myself and I can't be sure how long they are.
-Janetta
|
|
|
|
|
Janetta,
I am a bit confused about the scenario you described. Your worker thread calls first ReadFile(), then AfxEndThread() but ReadFile() continues to execute
Are we talking about one or two threads here? If we are talking about one thread, you are using overlapped IO. In this case you could cancle the IO with CancleIO().
If we are talking about two threads, you misunderstood the function of AfxEndhread(). It could be called only from inside the thread that wants to end and it is not possible to end a foreign thread this way. (Ending a foreign thread would be possible with TerminatThread(), however, using TerminateThread() is a big no-no!)
Or am I completly on the wrong path?
--
Daniel Lohmann
http://www.losoft.de
(Hey, this page is worth looking! You can find some free and handy NT tools there )
|
|
|
|
|
Actually the first option was what I thought I was doing...
I'm trying to make it possible to abort that lengthy operation. A message is posted to the worker thread and I thought that it would call a method of the worker thread that calls AfxEndThread. Posting the message succeedes, but the EndThread method is never called. Is this because the thread is busy performing that lengthy operation and when it is done, the thread is ended?
What would be a better way to do this?
-Janetta
|
|
|
|
|
Well, I desided to use TerminateThread, even though it is no-no. In this case it can't really make any damage.
-Janetta
|
|
|
|
|
A better solution would be to use non-blocking file io (overlapped IO) and wait for the ReadFile() operation in a loop that calls MsgWaitForSingleObject() so outstanding messages are also processed. If you get the message for "end the thing" you cancle the IO via CancelIo() and then just terminate the thread.
However, if you are sure that TerminateThread() is acceptable here, it may be the quick, easy and really dirty solution for your problem
--
Daniel Lohmann
http://www.losoft.de
(Hey, this page is worth looking! You can find some free and handy NT tools there )
|
|
|
|
|
Daniel Lohmann wrote:
A better solution would be to use non-blocking file io (overlapped IO) and wait for the ReadFile() operation in a loop that calls MsgWaitForSingleObject() so outstanding messages are also processed.
Unfortunately I can't do that, because I can't touch the code that is doing the reading.
I'll use TerminateThread and keep my fingers crossed
-Janetta
|
|
|
|
|
Dont use TerminateThread or something like that...
You must use a semaphore
The semaphore is used to tell the thread that it must exit
the thread must test the state of the semaphore in the ReadFile while
and exit if the semaphore tells it to
Casa.Sapo.pt
|
|
|
|