Paid programming job
Blitz3D Forums/Blitz3D Programming/Paid programming job
| ||
I'll pay $50 to anyone who does the following: Create a program that can reliably hack a Blitz executable. The program should: -Change the initial window size and flags of the Blitz3D window, so that it starts up invisible. (WS_VISIBLE=False) -Whenever a Graphics3D() command is encountered, the WS_VISIBLE flag should be false. The desired result is a Blitz3D window you can create, resize, and then show when you have the final settings you want. |
| ||
I don't think you can use WS_VISIBLE when blitz is in full screen mode since it's using a DirectX window. I can get it to hide a window and re-show it when using windowed mode (it does flash the black screen for a brief moment). |
| ||
This is for windowed mode. Yes, I can hide the window and reshow it, but I want it to be invisible from the start. |
| ||
I think that would require changing the compiled EXE itself, or change the runtime that gets attached. I'm afraid I can't help you there :\ This is the best I can do: |
| ||
Perturbatio, I am intigued with this, but it won't run on my machine, do I need a dll or something? I get function 'api_symmetrics' not found. Thanks, IPete2. |
| ||
You need the windows api decls file: save as kernel32.decls in your userlibs folder (I think that's the only one you'd need) |
| ||
Something like this ?? |
| ||
Spindeln, yes. If you can get the program to hide the window after a graphics3d command is called, and not erase the other window flags, then yes. This is for an application. When I start B3D, I want the window hidden. Then I will call a graphics3d command that creates a window the size of the desktop, and I want that hidden. Then I will add flags to make the window a resizable application window (using Blitz gfx mode 2, not 3), resize it to 800x600, and THEN I will show the window. I have to start with a window that is the desktop size, because I need a maximum drawing area that big. Here are the window flags I use: hwnd=FindWindow("Blitz Runtime Class",PROGRAMTITLE) style=GetWindowLong(hwnd,GWL_STYLE) If Not (style And WS_CLIPCHILDREN) style=style+WS_CLIPCHILDREN If Not (style And WS_VISIBLE) style=style+WS_VISIBLE If Not (style And WS_BORDER) style=style+WS_BORDER If Not (style And WS_MINIMIZEBOX) style=style+WS_MINIMIZEBOX If Not (style And WS_MAXIMIZEBOX) style=style+WS_MAXIMIZEBOX If Not (style And WS_SIZEBOX) style=style+WS_SIZEBOX If Not (style And WS_SYSMENU) style=style+WS_SYSMENU If Not (style And WS_DLGFRAME) style=style+WS_DLGFRAME If Not (style And WS_CLIPCHILDREN) style=style+WS_CLIPCHILDREN SetWindowLong hwnd,GWL_STYLE,style w=800 h=600 x=(GetSystemMetrics(SM_CXSCREEN)-w)/2 y=(GetSystemMetrics(SM_CYSCREEN)-h)/2 MoveWindow hwnd,x,y,w,h,True If you need any clarification, please say so. |
| ||
Ok , I removed the borders and titlebar in blitz and not by "hack". By default it looks just like your average blitz window except that you have to use ShowWindow otherwise it will stay hidden. And this way doesn't work with mode 3 only 2. Haven't been able to resize it runtime though, but if you know how it shouldn't be any problems (ehm perhaps :)). If you are willing to try it out give me a shout. |
| ||
Ok saw your codesnippet now, will give it a try. |
| ||
Ok was it something like this you had in mind ?? EDIT* Well there's a lot of problems with this concept. Seems like the graphics area doesn't get sized with the window and if you size your window beyond your graphics3d settings everything just goes to h***. |
| ||
Yes, I think you go it. Here's a tip: Before any render command, check to see if the window is bigger than the maximum size, and if it is, just resize it to the maximum size. Email josh@... and we'll make sure this works, and get you some cash. |
| ||
There's a hack tool on Blitzcoder website. If you want to change the size of blitz runtime window. |
| ||
I know, but that's no what I described. |
| ||
Why would you want such a program? Compared to most languages, Blitz is such a easy program to learn that a program that does what you ask for is pointless! |
| ||
"halo" has point though - I'm sure this type of question has been raised before. Blitz just sometimes does some things it's own way when you want to do them your way. |
| ||
TBH what I think josh is after is hiding an app until its set itself up, this is a good thing to do as it doesnt make stuff look 'half-arsed'. With the little popup window being there whilst you 'initialise' everything does make a program look unfinished IMHO. |
| ||
This problem was addressed by Spindeln. Thanks. |
| ||
"Spindeln" will probably want me to have the $50.00. So I'll cash it in for Character Shop, makes it easier than giving me the $50.00. |
| ||
TBH that little window never really bothered me. I did however code somethign a while back which hid it from view. Although that was not what I was after. What I did was code a splash screen in Delphi, as I wanted access to some of Delphi's nice GUI functions. and I dont have Blitz Plus. I made my new Delphi Spash Screen fill the desktop area, show the user the splash information and wait a few seconds, During this time in code I made Delphi execute my game, which at this point was still in the background so no little window. The Delphi app then closes itself down as the main Game boots. You never saw the small window and to the user all he see's is the splash screen going and the game starting. Seems to me like you could just fill the desktop area with a loading ?? Duno, hope this helps. |
| ||
He said it didn't take him long, so he nicely just gave it to me. Get in contact with him if you are looking for this. |