|
Ok I'll try that, thanks!
KR
|
|
|
|
|
Using BitBlt API with WHITENESS isn't better?
|
|
|
|
|
BitBlt with WHITENESS seems to be the fastest way to do it that I've tried. I guess I might be able to get it a little faster using a straight memcpy but I think BitBlt basically is a memcpy already so I doubt it'll help much.
KR
|
|
|
|
|
Through BitBlt we can avoid the risk of bugs, since we dont need to handle the DC bitmap directly.
|
|
|
|
|
RECT r = {...};
SetBkColor(dc, your_white);
ExtTextOut(dc, r.left, r.top, ETO_OPAQUE, &r, NULL, 0, NULL);
[EDIT]
Not saying it's faster, just another way.
At one point i believe it was the prefered way (don't recall why).
[/EDIT]
...cmk
The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.
- John Carmack
|
|
|
|
|
That way seems to be faster than FillRect, but copying directly to memory with BitBlt is slightly faster. Thanks!
KR
|
|
|
|
|
You may want to read:
http://blogs.msdn.com/oldnewthing/archive/2006/01/03/508694.aspx[^]
However, if BitlBlt accepts hdcSrc = NULL when dwRop is WHITENESS then you may as well stick with that if it's faster. This is a special case (color is set to palette index 1 = usually white). ExtTextOut is still fastest for setting any color.
...cmk
The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.
- John Carmack
|
|
|
|
|
How can I get the paths of the directories from which the application has been loaded, and the "current" directory (the one, which is specified in the "Start in" of the properties)?
|
|
|
|
|
GetModuleFileName(NULL, buffer, buffersize)
and
GetCurrentDirectory(...)
|
|
|
|
|
Thanks, it was very quick.
|
|
|
|
|
I has already been tried to this codes.. It does not work. Anybody can help me about picture control usage to review a picture.
HBITMAP hBmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), <br />
MAKEINTRESOURCE(IDB_BITMAP2),<br />
IMAGE_BITMAP, <br />
0,0, <br />
LR_LOADMAP3DCOLORS);<br />
<br />
CStatic* pSt = (CStatic*) GetDlgItem(IDC_STATIC);<br />
pSt->SetBitmap(hBmp);<br />
pSt->UpdateWindow();<br />
pSt->InvalidateRect(NULL);
Was is das¿
|
|
|
|
|
(1) are the style correct? IIRC, you need to set the SS_BITMAP style for the static.
(2) UpdateWindow and IncvalidateRect aren't necessary here (unless you don't exit the message handler where you have this for quite a while, which is a bad idea)
(3) If you would need them, they are in the wrong order
(4) Test your program with different DLU to pixel conversions (i.e. with different dialog fonts)
(5) My first CP article[^] handles the extras that oyu might need to make the bitmap look good.
|
|
|
|
|
Thanks friend.. Your article will be helpful.
Was is das¿
|
|
|
|
|
You can also use of CBitmap::Load if you are using of resource.
|
|
|
|
|
How is the usage of CBitmap class to load a saved bitmap in the resourceID. Request from you so Hamid.
Bitte tun Sie mir nicht antworten, wenn Sie nicht wissen, die Ursache des Problems wirklich oder nur als Antwort.
|
|
|
|
|
CBitmap has a function its name is Load you can use of it for load bitmaps if you need to more explain you can reply to me.
|
|
|
|
|
Please help with some type the sample code.
modified 13-Mar-13 6:08am.
|
|
|
|
|
CBitmap m_bmp;
m_bmp.LoadBitmapW(IDB_BITMAP);
you must declare variable out of function if you want to use of it on the other functions and when you want to close your program you must release memory with m_bmp.DeleteObject();.
|
|
|
|
|
I'm creating a slot machine game using directX.
I couldn't find how to get the dimensions (width,height) of a .PNG file.
|
|
|
|
|
If you're loading the png image, then whatever you're
using to load it should be able to give you that info.
Check out the shared CImage class and the GDI+ Image and Bitmap
classes for a couple ways to load images.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thank you very much Mark,
CImage solved my problem (using load() on the filename, then GetWidth()).
Do you think using this (only about 10 times during the init stage of my application)
can create any significant overhead ?
However, I wasn't able to find how to retrieve that info from D3DXCreateTextureFromFile, which is what I actually use to load the image resource (to draw textures using sprites in DirectX).
|
|
|
|
|
Hanan888 wrote: Do you think using this (only about 10 times during the init stage of my application)
can create any significant overhead ?
It's less efficient than just parsing the file for the info since the
entire image is loaded into memory. If you're going to use the
loaded image anyway then it doesn't matter - loading once at the beginning is
way better than reloading every time you need them.
Hanan888 wrote: I wasn't able to find how to retrieve that info from D3DXCreateTextureFromFile
I believe IDirect3DTexture9::GetLevelDesc() should give you this info.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
IDirect3DTexture9::GetLevelDesc() gives you description of the levels of the texture. I haven't dive into it - but know that the picture get auto-scaled to a power of 2 dimension, for example:
(60 X 36) --> (64X64)
GetLevelDesc() helps ya get the 64x64 info.
I finally scaled currectly but it doesn't look as good as the original plus I'm concerned if sprites&textures are really the way.
happy new year
and thanks again
|
|
|
|
|
I'm trying to use the handy RemoteLib found on this site, but I cannot even get my linker to work right. I have added the .lib to my Project, as well as the folders containing the lib/headers to my linker/additional folder settings (at least i think i got the steps here right....). I #include'ed "RemoteLib.h" . I am using VC8 (visual studio 2005).
When I compile the RemoteLib example project I get (and similar in my own):
Linking...
DemoDlg.obj : error LNK2019: unresolved external symbol "struct
HINSTANCE__ * __cdecl RemoteGetModuleHandleNTW(unsigned long,wchar_t
const *)" (?RemoteGetModuleHandleNTW@@YAPAUHINSTANCE__@@KPB_W@Z)
referenced in function "protected: void __thiscall
CDemoDlg::OnCall(void)" (?OnCall@CDemoDlg@@IAEXXZ)
DemoDlg.obj : error LNK2019: unresolved external symbol "struct
HINSTANCE__ * __cdecl RemoteLoadLibraryNTW(unsigned long,wchar_t const
*)" (?RemoteLoadLibraryNTW@@YAPAUHINSTANCE__@@KPB_W@Z) referenced in
function "protected: void __thiscall CDemoDlg::OnCall(void)"
(?OnCall@CDemoDlg@@IAEXXZ)
RemoteLib: http://www.codeproject.com/dll/RemoteLib.asp?df=100&forumid=141663&exp=0&select=1008934&tid=1008934
Any suggestions would be appreciated
|
|
|
|
|
Have you added RemoteLib.lib to the Linker command line?
BTW Have you asked your son a bit turn on international politics (just kidding )?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|