Paid programming job

Blitz3D Forums/Blitz3D Programming/Paid programming job

JoshK(Posted 2004) [#1]
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.


Perturbatio(Posted 2004) [#2]
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).


JoshK(Posted 2004) [#3]
This is for windowed mode.

Yes, I can hide the window and reshow it, but I want it to be invisible from the start.


Perturbatio(Posted 2004) [#4]
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:



IPete2(Posted 2004) [#5]
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.


Perturbatio(Posted 2004) [#6]
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)


Spinduluz(Posted 2004) [#7]
Something like this ??


JoshK(Posted 2004) [#8]
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.


Spinduluz(Posted 2004) [#9]
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.


Spinduluz(Posted 2004) [#10]
Ok saw your codesnippet now, will give it a try.


Spinduluz(Posted 2004) [#11]
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***.


JoshK(Posted 2004) [#12]
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.


Red(Posted 2004) [#13]
There's a hack tool on Blitzcoder website.
If you want to change the size of blitz runtime window.


JoshK(Posted 2004) [#14]
I know, but that's no what I described.


Amanda Dearheart(Posted 2004) [#15]
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!


puki(Posted 2004) [#16]
"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.


*(Posted 2004) [#17]
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.


JoshK(Posted 2004) [#18]
This problem was addressed by Spindeln. Thanks.


puki(Posted 2004) [#19]
"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.


Paul "Taiphoz"(Posted 2004) [#20]
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.


JoshK(Posted 2004) [#21]
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.