Blitz Hardwired - DirectX 9 Userlib (Part V)
Community Forums/Showcase/Blitz Hardwired - DirectX 9 Userlib (Part V)
| ||
Now that we are at the same level (or I at least hope so), and that textures work on all machines, I wish to put this behind us all and begin a new thread so we can concentrate on hardwired in general... I have now released a new version of the userlib Hardwired userlib / Command list here New stuff... dxLoadAnimTexture%(file$,flags%,frame_width%,frame_height%,first_frame%,frame_count%) - fully functional, just like b3d command dxLoadAnimTextureFromBank%(bank%,flags%,frame_width%,frame_height%,first_frame%,frame_count%) - if you wish, with command you can load an anim texture directly from a bank dxEntityTexture and dxSurfaceTexture now henceforth work with frames... New z-buffer configuration At the moment of initialising the screen with dxGraphics3D, hardwired will now determine the best z-buffer to use depending on your hardware. By default, it will set a 16-bit z-buffer which is usable on all machines. However, if the host graphics adapter permits, hardwired will set the z-buffer to a more precise 24-bit size. |
| ||
Perfect!! :) |
| ||
Rick Nasher: BTW: I thought the dxCreateTorus command would be great for adding an asteroid belt or disk around Saturn, but doesn't it allow for textures (yet)? Hardwired userlib / Command list here Done.... toruses (tori??) now have texture coords... |
| ||
I have a small problem with the Mouse control: msx#=msx#+dxMouseXSpeed() : dxMoveMouse(dxGraphicsWidth()/2,dxGraphicsHeight()/2) the result of the variable msx# shows no change, reset to 0 after dxMoveMouse... |
| ||
Okay, fixed. Thanks for that, Wolf1870. Hadn't seen that little (but important) bug. Should work now... Hardwired userlib / Command list here |
| ||
Ploppy, many thanks, now works perfectly! :-)) |
| ||
It run so Fast n Smooth :) Good news is if one day, you do Direct x 11 Blitz then it would be good test them as mine laptop is Direct x 11 :D |
| ||
Thanks Ploppy I'll check it out. Nice (and big) command list.. |
| ||
Ploppy: Do you have any issues with people using this with non-blitz languages (if they can get it to work)? |
| ||
I have no idea if it works with non-blitz languages, but why not? The one the springs to mind the most would have to be c++ of course, but I haven't released any .lib or .h file so it wouldn't be easy to use. |
| ||
Its not hard to write a wrapper for some languages.For this is only the dll needed. |
| ||
Hey Ploppy a question, if I can be explained simply, what is normal and what is a vector? |
| ||
It is Ploppy not Floppy! Go to spec saver and get yourself 3D Glasses LOL |
| ||
Okay, I'll try to explain what I know, but I'm sure I'll miss some things out. Anyone that can fill in the blanks, plese feel free to add to this forum.... A vector is basically an array of three floating-point variables of the x, y and z axis. A vector can be used to represent a position in xyz space, a scale (also called a scalar vector), a rotation vector (degrees around xyz axis), or a direction vector (x depicting amount to move to left/right, y for up/down and z for ahead/back). A normal also is an array of the three axis x,y and z and also contains floating-point values. They are used to represent directions in much the same way as a vector. The difference with normals is that the figure contained in each element of the array is between 0 and 1. A vector can be 'normalised' and then becomes a normal. An example. Direction vector x = 2 y = -4 z = 5 This vector will describe a direction which is to move forward and up and a little to the right. The normal of the vector would be (if i'm not mistaken) Object Starting position:x=10,y=10,z=10 Normal x=0.181818181818 y=-.363636363636 z=0.454545454545 If you add the absolute value of three of these values together, the result will be 1. What is the use of a normal in math calcuations?? Suppose you wish to move a object with a normal by a certain distance - lets say by 100. All you would need to do to find the amount to move is to multiply the distance by the each element in the normal array to find the amount you would move the 'object' in question. x*100=18.18181818 y*100=-36.3636363 y*100=45.454545 Object new position:x=28.181818,y=-26.36363636,z=55.454545 Movements in xyz space are easier and faster to translate using a normal. To convert a direction vector to a normal, find the total of the absolute of each element in the vector and divide each element by this total. ---------------------------------- A 'vertex normal' used in 3d modeling is generally pre-calulated for each 3d-model. Each vertex had a 'normal', which describes the direction which a vertex points. The direction is determined by the vertices that are connected to it. If the vertex is not connected to a triangle, it does not hace a normal, for normals are used by the graphics adapter to calculate how a triangle is shaded using light and camera normals into the equation. Here is a diagram of normals for a dodecahedral mesh (image taken from wiki) There is quite a lot you can do with vertex normals, you can even program them yourself to create your own shading and lighting effects - either with dxVertexNormal or using a normal texture map. Normal texture maps are often used in games to 'trick the eye' giving a 3d-model more detail than it geometrically has. A normal texture changes the shading of an object as if it triangle had bumps in it. I know, for example that doom 3 used normal maps extensively in their models. This gave the charaters a lot of detail. But many other games use normal maps too. Example below... Very interesting article here if you wish to know more about normal mapping |
| ||
New command for today... dxMeshesIntersect%(mesh_a%,mesh_b%) - fully functional works just like b3d command, returns true is meshes intersect As written in the description for MeshesIntersect, use with discretion. This function fully works and will check collisions between two meshes. But this is slow, it will check each and every triangle of the first mesh against each and every triangle of the second mesh. The more triangles, the more calculations... Hardwired userlib / Command list here demo in dxmeshesintersect.bb |
| ||
New command works perfect. Thanks for the explanation on vectors and normal, you always have to learn something new. |
| ||
wrote a little testprogramm with a terrain and trees on it, contain a black color in the texture. Little problems with the textureflags... - Flag 4 does not work - black is visible - Flag 2 works (black is invisible), but the trees are behind the Terrain. - set DxEntityOrder tree, -1 everything works perfect - Flag 1 and dxEntityAlpha tree, 0.99 works (black is invisible), but the trees are behind the Terrain,too. - set DxEntityOrder tree, -1 everything works perfect and one more note: please, please still implement Flag 256 for sharp textures, in the distance everything looks terribly blurry ... Many Thanks, Ploppy! |
| ||
Hi Wolf, Ok, should all work now. I have checked black masking and seems fine after a bit of tweaking. As for 'blur', I have changed the default texture filters to the minimum setting, your blur should not appear now. Don't forget if you wish to change texture filter settings, you can do so at any time using the dxSetFilters command. I have put this command at the beginning of my demos, because I prefer it with smoothing (not pixelly close up). However, if you change this dxSetFilters setting or delete this line you will see the difference it makes in rendering textures to the screen. Hardwired userlib / Command list here |
| ||
:) |
| ||
That's just me playing with the code Delete these lines and all is fine... dxEntityAlpha dwarf,.5 dxSurfaceAlpha dxGetSurface(dwarf,4),.5 |
| ||
Thanks for the tip, Ploppy! Have now set dxSetFilters 1,1,0 and now it is wonderful sharp in the distance. TextureFilter 4 works well! Great! |
| ||
There is still a little bug in my last release concerning texture masking. Try test8.bb and you'll see what I mean. Reload this, and all should be ok... Hardwired userlib / Command list here |
| ||
Ploppy, insert in your mask_test.bb before the sprite: terrain = dxCreateTerrain (128,0): dxPositionEntity terrain, -15, -5,5,0 Please look at the lower surface of the masked sprites. You can see through the terrain ... Have you an idea? |
| ||
test 8 Test mask dxturnentity on sprite no work |
| ||
That's normal - it's a sprite |
| ||
OK, dxRotateSprite ??? command blitz3D rotateSprite(Sprite,Ang). |
| ||
Yes, sure - I will put that one in... |
| ||
Okay, I have added dxRotateSprite(sprite%,angle#) - works just like b3d command and I have sorted out the terrain and masking problem wolf was encountering... Hardwired userlib / Command list here Enjoy... |
| ||
would be cool to have shadow commands? |
| ||
Just added dxCreateCone, because I had forgot to do that one. Hardwired userlib / Command list here I'm not to hot on the shadow idea, these can be 'pre-baked' by the blitz-programs. I probably could produce a basic 'shadow generator', but nothing complex as I feel that a shadows complexity and look could be very diverse and at the same time dependant on the game's feel/mood. Maybe I will try something, but I think that you will have all the tools necessary (including dxRenderToTexture) to be able to generate your own shadows in the manner that feels right for you. Shaders can help also in texture and shadow generation. |
| ||
Thank you for your efforts and your time to solve my little problems! In any case, keep it up, Ploppy!!! :-)) |
| ||
@Ploppy: Of course you are right that with the power of DX9 it's very possible to do shadows. Nevertheless, an easy (fast)shadow system is always nice to have. I think it's what most people turned to FastLibraries for. It certainly has my vote. ;-) |
| ||
I do not understand, that is, with built so far can make shadows with Shaders?, Dynamic shadows?, In such a case would be good options, such as dxCreateShadow (Entity, Quality) something. |
| ||
Probably something like this would also be needed: dxSetShadowReceiver (Entity) dxSetShadowCaster (Entity,Range,R,G,B[,texture]) dxUpdateShadows() or dxRenderShadows() for the mainloop. Or would dx9 shadowing be completely different? |
| ||
You're right, I have just been looking up shadow generation and looks mcuh easier to do than I first thought. I think I will do a little routine, seems like a nice addition and should be pretty quick too. Okay, thinking cap back on. Thinking is such a bad habit to get into, horrid business... |
| ||
Two small problems with the terrain: 1) I create two terrains with dxCreateTerrain (128,0) and put them side by side. The distance between the two terrains is only 127 and not 128 (dxCreateTerrain (64,0) is the distance 63) 2) If I put a texture on the terrain, it will appear vertical mirrored. and shadows would be great ... ;-) |
| ||
@Ploppy: that sounds really good! |
| ||
Almost there with shadows already (bit buggy for the moment as you can see), with a bit of luck and a day or two more and that will be done (cross fingers). Wolf, I have vflipped out the texture for terrains, and will resize them, that's all quick and easy. Sorry about that, I just programmed the terrains a bit too quick to notice that effectivly my texture mapping was upside-down. No update tonight, sleepy. Have worked today, am working tomorrow; when's retirement again?? |
| ||
Ploppy, I'm trying to help you find the bugs, as far as it is possible for me. Wish you a good sleep ... |
| ||
Looking really good! However, I was just trying to get this working in BlitzMax, but a simple 2D-only example freezes and/or crashes for me. I tried it in Blitz3D and it does exactly the same. Am I doing anything wrong here? dxGraphics3D 640, 480, 32, 2, 1 Repeat dxCls dxRect dxMouseX () - 16, dxMouseY () - 16, 32, 32, 1 dxFlip 1 Until dxMouseHit (1) End The BlitzMax version is below, out of interest: |
| ||
Same here, seems to open 2 windows if you look at the taskbar. Works in debug mode in B3D. |
| ||
Wauw, still can't believe the speed your spitting out code Ploppy. We've only just mentioned shadows and whoops there it is! Your brain must be twice the size or something.. |
| ||
XD power full on c++ and DirectX |
| ||
I actually took time to go to the cinema to see Kingdom of the Crystal Skull, still want my money back today. Can remember even wincing when watching certain scenes (the fridge bit, the end scene). But I digress... @BlitzSupport , hi there - glad you like. I have tested your program, works fine for me. Interesting bug (another one :[ ). Where exactly does it bug out, on dxRect or dxMouseX?? I reckon it's probably dxRect where the problem resides as the code is more complex with buffer access, locking, etc.. If the problem is in dxRect and you have the time, could you please try dxPlot, dxLine and dxOval for me as well. I would like to know if you have the same problem there too. Since these commands share certain functions, these may undergo the same brutal sentence. How does it crash btw, does it freeze or give you MAV right away?? |
| ||
Struggling to determine what the cause is -- this just freezes until you click on the window, then you get prompted to close it as it's not responding. It's almost like it's not processing any window events:dxGraphics3D 640, 480, 32, 2, 1 Repeat dxCls dxFlip 1 Until dxMouseHit (1) End However, this 3D example works fine: When running from BlitzMax it gives similar problems to the first example, ie. it just stops responding after showing the first frame. (Another BlitzMax example simply gives a Windows error stating that the program has stopped working.) Still, even focusing on Blitz3D alone, I can't see what causes the first example to fail, but my impression is that the window itself is frozen, as happens in GUI programs where events aren't being processed. Could be wrong though! |
| ||
Thanks for bug reports everyone, 'tis great (and quick) feedback. This kind of feedback is encouraging for me as it gives the impression that you wish this userlib to reach completion and stability as much as I do. Great stuff... BlitzSupport - I did include an event checker in the dxRenderWorld command, but I didn't think of putting it in the dxFlip command. It was indeed a windows event problem - apps have to tell windows very often that the app is still alive or else windows panics. This is why your first bb program crashed out. So, I have released a new version below, with an event checker in dxFlip. Should work better now. By the way, in your second program, you don't need dxCls if you have a created a camera and use dxRenderworld, dxRenderworld will clear the screen automatically - just like in b3d. JBR, I have also decided to 'hide' the blitz output window when dxGraphics3d initialises a screen mode, the window will return after a dxEndGraphics. This way, only one window will ever appear at any time on the taskbar. Wolf, textures are now right-side up in terrains. I haven't yet fixed the terrain size though. It'll come... Hardwired userlib / Command list here Note: test8.bb will be terribly slow for the moment for I am testing my shadow routine. Don't panic, all is normal - I am optimising my routine. It takes some time... |
| ||
Small note: dxCreateTerrain() works now, dxLoadTerrain() is the same Problem with the texture, please check, if you have time. And a question: dxCameraPick works fine, dxEntityPick works already? |
| ||
Okay, dxLoadTerrain updated. dxEntityPick and dxLinePick do not work for the moment, the commands exist but do nothing... Hardwired userlib / Command list here |
| ||
works perfect now! many thanks ... |
| ||
Have updated shadowgen.... Shadows are great.... Only old brits like me will understand this bad visual joke |
| ||
BlitzSupport's code working now. Jim |
| ||
Well done, Ploppy -- now works perfectly. Also, in addition to the event problem, it turns out I'd forgotten (yet again) to add the "win32" calling convention to my DLL calls in BlitzMax -- it also works perfectly! The dxRect example also works now, in both Blitz3D and BlitzMax. |
| ||
@Ploppy: Regarding the shadows.. Lets not forget Cliff Richard! Thank you, your Majesty! (and I'm not even British.. ;-) |
| ||
Outstanding! absolutely incredible! Thank you so much to all involved, Ploppy especially for everything you have put into making this dream for many possible, and also to all of the testers for their continued support and words of encouragement. I can honestly say that I have not used BlitzPlus & Blitz3D in quite a while but they still feel like old friends albeit now with a modern face lift, and it all works extremely well on Win8.1 x64 the maze test is so fast, well done! |
| ||
Btw, I need to replace the speed in cam module otherwise mouselook spins way tooo fast: dxTurnEntity cam,diff*dxMouseYSpeed()/100.0,-diff*dxMouseXSpeed()/100.0,0,0 With this change from /10.0 to /100.0 it's manageable. Anybody else having the same? |
| ||
Floppy long live, long live Floppy!!. :) We are removing the dark lands of DirectX 7 XD. |
| ||
Respect goes to Rick for the obscure brit culture reference. |
| ||
This seems to work well on my machine. I don't have the "see through wall" bug that i had in the previous demo in the maze. Good luck for the next steps. :) |
| ||
Big fan of this project. Will test anything you need for.. windows 7 64 geforece GTX 670 |
| ||
Hello all, Shadows nearly work- not perfect yet, still a bit buggy but shouldn't crash. Please see test8.bb for demo... New commands relative to shadows... dxLightCaster(light,enable) - enable a light to cast a shadow (true/false); defaults to false dxEntityCaster(entity,enable) - enable an entity to case a shadow (true/false); defaults to false *** Please note, at least one light and one entity needs to be shadow casting enabled to be able to see any shadow rendered. dxEnityShadowDetail(entity%,triangles%,detail_percent#) - set a entity's shadow detail, defaults to 500 traiangles An entity's shadow does not use the same mesh as the entity, but a simplified version of the mesh. With this command, you can set the level of detail you wish of this shadow mesh relative to the entity's mesh. If you leave the triangle parameter as 0, the command will take the percent parameter as the detail setting. For a mesh with a high traingle count, it is advisable to have a lower detail or else the renderer will significantly slow down for shadow generation. dxEnityShadowColor(entity%,color%) - you can play around with a shadow's color, if you wish to have strange effects defaults of course to 0 (black). dxEnityShadowIntensity(entity%,intensity_percent#) - defaults to 50% dxEnableShadows(enable%) - a global setting, with this command you can turn on or off shadow for the renderer; defaults to true dxEnityShadowCutoff(entity%,min_distance#,max_distance#,fadein#) - sets the minimum, maximum and fade-in distance (fade-in being 0 to 1, 0=minimum, and 1=maximum) from the camera that an entity's shadow will show ; defaults to 0,10,.5 - this function will help increase render speed when shadows are distant |
| ||
Where link for shadows?? new demo? |
| ||
Sorry, forgot that bit... Hardwired userlib / Command list here |
| ||
It looks great, I guess I have yet to fix things. I have many doubts as shadows in DirectX9 work, I've only managed shadow maps and volumetric shadows, what kind of shadows puden implemented in DirectX9? Greetings. |
| ||
Here model tree for Shadows. Textura mask. Download: https://dl.dropboxusercontent.com/u/39767349/Tree.rar |
| ||
I did say it was buggy, but it is taking form. Don't worry about the graphics problems, it is not just your machine this time. It's just that I haven't yet perfected the code. But it is going in the right direction. Thanks for the model Yue - I'll have a look at it... |
| ||
Ok do not worry, if you need a change in the model as a texture that is not mascara, but alpha, inform me and I make the changes. One concern I have is is this. Graphics3D(800,600,32,2,1) SetBuffer (BackBuffer()) Local Camera% = dxCreateCamera(0) Local Cube% = dxCreateCube(0) Local Light% = dxCreateLight(0,0) dxPositionEntity Cube%,0,0,10,0 While Not dxKeyDown(1) dxTurnEntity Cube%,0,1,0,0 dxRenderWorld(1) dxFlip(0) Wend End ; Here :D Function Graphics3D%(widht%,height%,depth%,mode%,Vsinc%) dxGraphics3D(widht%,height%,depth%,mode%,Vsinc%) End Function Function SetBuffer%(buffer%) dxSetBuffer (buffer%) End Function Function BackBuffer%() Return dxBackBuffer() End Function Function FrontBuffer%() Return dxFrontBuffer() End Function how feasible it is to do the above, I think for many it would be much easier to work, I mean Blitz3D users like me who are not programmers, would be a good idea to do this with all the commands you have created? ... something else not meeting dxcreateplane. Greetings. |
| ||
This is indeed very feasible, and a good idea. The best thing is to use this as an include file. There is another good thing about this as well, you can set default variables, which one cannot do with the userlibs. |
| ||
Ok, I have started to work on it, the include file I called DX9.bb. :) |
| ||
Good luck, it's a large list.. don't forget the defaults for example Function EntityX#(entity%,global=true) true is the default value for the global parameter for EntityX in b3d. |
| ||
Ok, I'm basing on the command list and I've started with the global category. Most likely it touches verification. |
| ||
You will need the blitz3d help files as a reference also for the default values |
| ||
Well, this is the 0 review of Global and Graphics. I hope I have been so wrong. |
| ||
Looks good, you are rapid - very clearly done too. However, commands such as GetFPS and Pointframe never existed in b3d, these are new commands. You can of course rename them if you like. Thanks for this, it will really add to the flexibilty of hardwired. |
| ||
EDIT: ENTITY STATE TO TEXTURE. |
| ||
Very cool, that shadow system is coming together really well, and this last turn of events will make converting old code a lot faster(good idea Yue). For new code I'd rely on the new dxCommands though cos if one wants to get the best out of, it would probably require different structures and usage of new commands anyway. But of course one could also use dx9 to enhance and build on existing code. |
| ||
Since morning hour, what worries me is that the list is not as identify new commands Ploppy put our Friend. For some reason the commands go into this lib, I perceive that this is not the end Blitz3D and accept that it is a powerful library. Just as I left the bitter taste that is not all, I'm not a programmer and if I could turn back time I would consider safe programming fustrado truth ... that I feel. |
| ||
Hi Ploppy when you are in window mode,there is no window frame.Or close,minimize.buttons |
| ||
I must get round to changing that, like so many other things :D |
| ||
Okay, done LittleDave, windows now default to blitz's defaults - I have also extended on blitz's capabilities... Here are the new commands... dxSetVSync(enable%) - sets the default vsync setting (true/false) for any following dxGraphics3d commands; defaults to true. I have changed dxGraphics3d syntax to same syntax as b3d, removing the vsync parameter. dxSetWindowDefaults(borderless%,minimize_button%,maximize_button%,close_button%,autoclose%) - set defaults for any following windowed graphics modes. Defaults to false,true,true,true,true. When set to true, autoclose will automatically close a window if you click on close button (or alt+f4). When false, a close request by the user will signal hardwired that the user has requested quit without actually quitting. This way you can control better the way in which an application quits. Imagine you wish to save a few settings just before quitting after the user clicks on close or bring up a requester 'are you sure?' for example. Now you can. dxWinClose%() - If autoclose has been set to false, this function will return true if the user has requested quit, either using the window close button or alt+f4. |
| ||
Men, where link for download? :D |
| ||
Hardwired userlib / Command list here All links in thread point to same download... |
| ||
Hey I have a question, In Blitz3D has always been a pain changing screen resolution when you have loaded the game completely, because I have to remove everything with a "EndGraphics" and load everything again to set the new resolution screen. Anyway, with this program could make a change screen resolution without eliminating any element of a scene? :) Windows. |
| ||
Hello ploppy great job your doing, I been checking out your work on this project and it is great. I was wondering if your intending on putting in a command for hard instancing, where you can put a lot of instances of one model without effecting the frames per second. |
| ||
I don't know but maybe - I'm kind of making it up as I go along... |
| ||
This is Really Good Work thanks for the reply. |
| ||
Ploppy, strange one here. After I run your dx commands, some of my keys change. Like my keyboard changes to the US version rather than UK. Jim |
| ||
Hi JBR, I did this deliberately, for this is what happens in B3D. |
| ||
@JBR what specific problems do you have? |
| ||
When I press the (#) key it comes up (\) When I press (shift 2) I get (@) rather than (") When I press (shift 3) I get (#) rather than (pound sign) Similar thing with the @ key. This is when I noticed it when I was trying to enter my email address after running some of Ploppy's code. No biggy but a bit strange. |
| ||
... |
| ||
normal control? |
| ||
Hi, I can't get dxText to work. Just prints "iP" |
| ||
Hi, the B3D (dx) version of the above works fine. Could it be font related with BMax? |
| ||
@JBR I think Ploppy`s userlib is for BPlus and B3D not Bmax. :) @Ploppy Thank you for the window controls. |
| ||
Well, I think it should work with bmax too, after all it makes dll calls, just using the same protocol as the other compilers. JBR, it may be font related, well at least it doesn't crash - that's something :D Try using dxLoadFont and dxSetFont at the start of your program (after the dxGraphics3d command of course)... |
| ||
Ploppy, added the dxLoadFont and dxSetFont using BMax & B3D. The underline didn't work in both. I still get "iP" in BMax, but the "iP" does take on the font & bold & italic. Whatever string I try in BMax I simply get "iP". |
| ||
You're sending a BlitzMax String object, which may not be the type of string that dText() is expecting. Try... Global dxText (x:Int, y:Int, text:Byte Ptr, center_x:Int, centre_y:Int) "Win32" [...] Local jimPointer:Byte Ptr = jim.ToCString() dxText 10,10,jimPointer,0,0 MemFree jimPointer Or... Global dxText (x:Int, y:Int, text:String Ptr, center_x:Int, centre_y:Int) "Win32" [...] dxText 10,10,VarPtr( jim ),0,0 |
| ||
Kryzon, thanks. In the end, simply changing text:String to text:Byte Ptr as in your first bit of code worked perfectly. |
| ||
New stuff... dxClearWorld%(entities%,brushes%,textures%) - fully functional, works like b3d dxClearCollisions() - fully functional, works like b3d dxCollisions(src_type%,dest_type%,method%,response%) - fully functional, works like b3d dxTextureFilter(match_text$,flags%) - fully functional, works like b3d, haven't yet integrated into dxLoadTexture though dxClearTextureFilters() - fully functional, works like b3d dxScreenWidth%() - new function, returns screen's width for windowed graphics mode dxScreenHeight%() - new function, returns screen's height for windowed graphics mode dxWindowWidth%() - return window's current width dxWindowHeight%() - return window's current height dxWindowX%() - return window's current x-coordinate dxWindowY%() - return window's current y-coordinate dxWindowResized%() - returns true if the window has been resized dxWindowMoved%() - returns true if the window has been moved dxMeshSimplify%(mesh%,vertex_count%,triangle_count%,vertex_percent#,triangle_percent#) - as the name suggests, this function will simplify a mesh to the desired vertex or triangle count. Please note you can only simplify a mesh either to a vertex count or a triangle count. By default the command will take the vertex count into account, if the other parameters are zero. If however the vertex percentage isn't given this will be used instead. If the triangle parameter isn't zero, this will be used, and logically if the triangle percentage isn't zero this will be take precedence. Example: dxMeshSimplify(mesh,50,0,0,0) - will reduce the vertex count to 50 dxMeshSimplify(mesh,0,0,0,50) - will reduce the triangle count by 50% dxMeshSimplify(mesh,0,0,50,0) - will reduce the triangle count to 50 triangles The scaled windows graphics mode (mode 3) now works. Wolf, I have corrected the dxCreateTerrain, it should have the correct size now.... Hardwired userlib / Command list here |
| ||
@JBR To compliment what Kryzon just explained If .ToCString() works ok then in the function that gets called with that as a parameter you can use Global dxText (x:Int, y:Int, text$z, center_x:Int, centre_y:Int) "Win32" Local jim$ = "My name is Jim" dxText 10,10,jim,0,0 You can then use normal Blitzmax strings in the function call and Blitzmax will automatically do the equivalent of .ToCString() for you. |
| ||
Hi, what does $z mean? Can't find it in the docs. |
| ||
$z is a typo, it should look like this: |
| ||
Hi, it's not a typo. Without the 'z' it does not work. |
| ||
I'd say the $z stands for 'zero terminated c string' as that's what it represents ie a c string ( array of 1 byte char(s) ) which is null terminated ( ascii value zero, not the zero character which is ascii value 48). There is also $w if you want to convert to a 'zero terminated wide c string' ( 2 bytes per char ). $z is a typo, it should look like this Nah, the $z and $w types are undocumented helpers for passing BlitzMax strings into code thats been built out side of BlitzMax thats expecting a string as an array of ascii chars - more accurately during compilation they are resolved to a pointer to the string ascii data itself rather than a pointer to the BlitzMax String Object, 2 completely different things, hence why it doesn't work when you try to use the example above without the 'z'. As you've noticed these are completely undocumented and any problems with them are unsupported by BRL. The community will support it though :-) Also, just wanna use this chance to say 'Excellent work Ploppy!' |
| ||
Some nice news. Hardwired now can display videos within dx9 (see above), with huge FPS rates... This I have integrated with the help of 'libvlc', a very powerful library capable of interpreting multiple video filetypes (avi, mp4, mkv, wmv, etc....) at high speeds. So, in order to use any video functions within hardwired you will need to install libvlc. Libvlc is a free library, available on the internet (http://www.videolan.org/), and is the core of the popular vlc media player. To be able to use this, you will need to copy the files 'libvlc.dll' and 'libvlccore.dll' together with the whole of the plugins folder (copy folder and its contents) from the installed libvlc folder to your bb project folder. Please note that the files/folder are not to be copied to the userlibs folder, but to the folder where your compiled exe/blitz bb is. Further note, you have to install these files only in order to get the video functions to work. If you do not wish use these functions, the files do NOT need to be installed, and hardwired will behave as normal (at least I think so, he says confidently). If you use these funtions, and these files are not installed the video functions will not work, but should not stop your program from running otherwize. New demo out, vidtest.bb ! So, here are some new commands for you... dxVlcPresent%()- will return true if the required vlc files are present in the app/bb folder dxVidLoad%(file$) - will load a video, returns 0 if file not found or invalid dxVidDownload%(path%) - not yet working dxFreeVid(video%) - frees a video from memory dxVidTrackCount%(video%) - returns number of tracks in video dxVidTrackType%(video%,track%) - returns type of track.... 0=unknown 1=audio 2=video 3=text dxVidWidth%(video%) - returns width of video!! (duh) dxVidHeight%(video%) - returns height dxVidDuration%(video%) - returns duration of video in milliseconds dxVidTexture(video%,texture%) - sets a texture to a video so you can display it dxGetVidTexture%(video%) - retreive a texture from a video that had beed set before dxVidPlay(video%) - play video dxVidPlaying%(video%) - returns true is video is currenly playing dxVidStop(video%) - stop a video. dxVideoPlay will restart video dxVidPause(video%) - pause the video, dxVideoPlay will unpause and continue from where it was dxVidGetPosition%(video%) - returns the current position of video, in milliseconds dxVidSetPosition%(video%,millisecs%) - set the position of the video, in milliseconds dxUpdateWorld(anim_speed#) - now neeeded to update texture for all videos I haven't yet checked out if multiple video playback works, but I'm guessing it does. More video functions to come (subtitles, dvd, volume, blu-ray even perhaps). Hardwired userlib / Command list here |
| ||
Have just checked out multiple video playback, works fine. Have quickly added these... dxVidMuted%(video%) - will return true if video is currently muted dxVidMute(video%) - will mute a video (turn off sound) dxVidUnMute(video%) - will unmute a video dVidGetVolume%(video%) - will return current volume level of a video (0-100) dVidSetVolume(video%) - will set volume level of a video... All should work, please let me know if they do not.. |
| ||
More video commands dxVidGetSubtitleCount%(video%) - get number of subtitle tracks that video contains dxVidGetAudioTrackCount%(video%) - get number of audio tracks that video contains dxVidGetAudioTrackDescription$(video%,track%) - text desription of an audio track dxSetAudioTrack(video%,track%) - sets a video's track dxGetSubtitleDescription$(video%,track%) - text description of a subtitle track dxSetSubtitle(video%,track%) - sets a video's subtitle For some of you, hardwired may seem to 'freeze' after installing libvlc for the first time. This is not my fault, this is due to libvlc's internal workings. The first time it is used on a system it automatically builds a list of fonts on the host machine and can take up to a minute to perform. Once this list has been constructed, it will not do that again. So normally, hardwired will only 'freeze' the first time, and after a minute, should resume activity. I'm trying to find a way to disable libvlc from constructing it's font cache... |
| ||
Hi Ploppy, This sounds like a really marvelous addition. A few questions though: 1. As I couldn't find a separate download for it, I assume that one has to copy the DLL's and plugins directory from an installed VLCplayer right? I have installed it already(excellent piece of software), so I just copied the files from: C:\Program Files\VideoLAN\VLC\ 2. Does it matter if it's the 64bit version? Couldn't get it to play up till now. 3. As a lot of people have VLCplayer installed already, would it be possible for Hardwired to check if it's in the default location and make use of the DLL's and plugins there without the need to copy them over to the Blitz project directory? |
| ||
Hi Rick, If for example you have your bb files in let's say c:\projects you would copy libvlc.dll, libvlccore.dll and the plugins folder to that folder. I don't think it will work with the 64-bit version, but who knows. You'll have to install the 32-bit version I think and just copy files over... As for your third idea, I like it. I'll look into it... G'night |
| ||
great |
| ||
The FPS are much lower than 3 to 4 releases before. On my system the dwarf test10.bb has before around 4500 FPS and with debug mode something slower. Now only 1250 to 1300 FPS and debug mode the same. |
| ||
Hi IamHere, I think the problem must come from the fact that this program is now windowed, I changed the dxGraphics3D mode from 1 to 3, in order to test things. Since windows has to display other things than just the bb program, it will need more processor time. Or at least I think that must be the problem. In this new release, I have changed the gfx mode back to full screen. See what fps you get now. Anyway, don't complain too much, I think my gfx adapter would kill to have 4500fps ;D 1500fps is pretty much my max for test10.bb... You have a very powerful gpu... Okay, I have added one (just one) new command to the list today... dxRequestFile$(title$,default_folder$) - brings up a standard windows file requester and returns file chosen or an empty string for nothing/cancel title$= window title default_folder$=default folder for when the requester appears vidtest.bb updated to use this file requester to help make bb friendlier... To make things easier to install the video capabilities of hardwired, I have below included the libvlc 32-bit dll files in a separate zip file (28MB), if you so wish you can download and extract the files directly to your bb app folder. This archive file includes ONLY the required dll files, and not the vlc media player. Hardwired userlib / Command list here / Libvlc dll's here |
| ||
Late addition of two new fun video commands... dxGetPlayRate#(video%) - get current playback speed (set to 1 initially) dxSetPlayRate(video%,rate#) - set new playback speed (relative to default playback speed; 2=double speed, 0.5=half speed, 4=x4 speed, etc...) |
| ||
The video playback addition is very cool Ploppy, good job. |
| ||
Something mysterious has happend and I can not found the reason. I tested the test10.bb against another 3D Engine-System. With the other system I have 4800 FPS Fullscreen, with Hardwired yesterday I have 4300-4500 FPS Fullscreen. Today I installed the new version and have now 1500 FPS Fullscreen, for testing I reinstalled the older version again, also in Blitz3D/bin and Blitz3d/userlibs folder. I always use the nodebug version (the release version) with Blitz3D and Fullscreen 1920*1080 Pixel. But now I have also with the old version of Hardwired engine only 1500 FPS. I tested also with an old EXE I made and I have not change, also only 1500 FPS. But the example with the other Engine System did have the 4800 FPS always. It's not a system bug, I also close other things like browser, same start for both and now 66% FPS lost. I have no idea what's going on. My System is NVIDIA 560 GTX 1280 MB RAM Intel I7-2600 CPU 16 GB RAM About 2 years old, a Discounter Computer. |
| ||
Wow even Panno "The Blitz Webcam DLL Guy" is back? ;-) |
| ||
1 ) Could be at the command dxRequestFile$ () a more detailed search for the final designation (". bmp", ". mp4" ...)> dxRequestFile $ ($ title, $ default_folder, ending $) < 2) The dxSetVSync command is still the same as dxflip? (both work not at the moment in fullscreen) |
| ||
@Iamhere: Dunno if Optimus is applicable in your system, but if so: perhaps your NVIDIA didn't kick in and running on intel gfx? |
| ||
Sorry, I can't help thinking too that this is a machine issue, not hardwired. I personally haven't had a serious fps drop in the last week, and at the same time I haven't added anything to the renderer that would justify such a processor usage. I however do know what does slow down pc's. Don't want to scare you IamHere, but have you scanned your pc for viruses recently?? |
| ||
I have always a visus scanner runing and sometimes I additionally let run malware phishing trojan scanner, but it is not 100% that I have not a virus. I thought yesterday, is there somewhat like a Blitz Virus on the way? I checked the new release with BlitzPlus and have the same low FPS against the other 3D Engine, so it is not a 3D Problem on my System it must have to do with Blitz. Possibly something what have hacked inside my Blitz Installation. I made an EXE with BlitzPlus and become 3000 FPS but not stable, running up and down. But more than 1500 FPS by running with the IDE. I have tested the old release and did not get the high FPS I have before, and so it is not a hardwired problem, I know that. I have not say direct, more indirect in the last post. I know this is a mysterious problem. There are much viruses on the way, and possibly some unknown. |
| ||
I tested now a third Engine http://www.blitzbasic.com/Community/posts.php?topic=101569 this one, the example 57 and amke them fullscreen with 1920*1080 Pixels it's an animation, not the same Mesh but I get with BlitzPlus 4750-5150 FPS. So it's not direct a Blitz Problem. I got 2 days agon 4500 with blitzhardwired and test10.bb many times and I have the generated exe always. But I can't get the FPS back. Also not with settings in the NVidia 3D Setting and I include the Exe directly. All the other engines are not affected. And I can not think that when I reinstall a new release or reinstall an old release, a virus catch them immediately. This must be another problem, possibly a DX internal thing Rick Nasher you speak about Optimus, what is this, I never heard about this. |
| ||
Wow, I wasn't even aware of this Irrlicht project. Looks really really good, great to see there's a lot of dx9 support going on at the moment. Love it... |
| ||
@Ploppy: might Iamhere's FPS reduction be related to the window event fix you recently put in? I can't really see it as being a problem, though, when a game typically runs at 60 FPS, or maybe a couple of hundred MHz behind-the-scenes depending on the timing system used. Running at thousands of frames per second is pretty meaningless since any application running at those rates clearly doesn't involve any real-world timing and only relates to raw CPU/GPU power. |
| ||
Little update tonight, but VERY important one (for me mainly)... I need a little test done by somebody with an xp machine, please. I have included some direct x 11 code in my dll tonight. It will not be visible to any, but it is there. The thing is that directx 11 is not compatible with xp or under, but I wish my dll to work on xp machines nonetheless. There is, after all, the dx9 version that works well. Can you xp users tell me if the userlib runs without saying that there is a missing directx 11 dll. My userlib, if I have programmed it correctly should not bring up an error message, it will just use the dx9 part of my code and not touch the dx11 stuff. But I need someone who has an xp machine to confirm this. I need to keep my compatibilty on all machines. Anyone that has dx11 installed on their machine should not see any difference for the moment. By the way, Wolf you have misunderstood the dxSetVSync command. It is not like le dxFlip command at all. You use the dxSetVSync command only ONCE and BEFORE a dxGraphics3D command. This will instruct directx 9 to create a directx 9 device with or without vSync, depending on the parameter supplied. The default for this setting is true. I have also added a filter$ parameter to the dxRequestFile command as requested by Wolf... dxRequestFile$(title$,default_folder$,filter$) You can create a list of file filters with this parameter. This string is a list of strings connected by a vertical bar '|'. An example of this can be found in my updated vidtest.bb. The list is made up of pairs of strings. The first of each pair is a desription string of the file filter (example:'avi movie file'), the next of the pair is the filter itself (example:*.avi). You can use multiple file filters by separating them with a semicolon ';'. Please note that the first in the list will be the selected file filter in the file requester. If you do not supply a file filter in this parameter, the default file filter will be used which is to show all filetypes (*.*). Hardwired userlib / Command list here / Libvlc dll's here |
| ||
thanks for the explanation and the extension of dxRequestFile$,'ve understood it and now it works as it should ... great! |
| ||
Wow, just been playing around with the Irrlicht userlib, thanks Iamhere for making me discover this. It's very powerful indeed, and speed-wize it seems faster and much more complete than my userlib. I'm blown away by some of it - great stuff. Things definately seem to be looking good for blitz these past few months.... XP users, please read my last post if you haven't yet done so - I need your help... |
| ||
I have tested with an old installation on my old XP Computer long time ago I used it. I have no success, also not with an earlier release of hardwired. I installed then BlitzPlus and also no success always "userlib not found" but I copied both, the dll and the .decl in the bin and the userlibs folder . With Win7 no problem to find the userlib, but with XP I have problems. |
| ||
And another thing has happened, 80% I start test10.bb now with new release I have over 4000FPS, but sometimes it have only 1500 FPS. But with other engines the FPS is constant, no FPS lost. I have no idea if this FPS reduction is also there if I have a bigger programm with much meshes. If the FPS reduction is in percent also a problem with bigger projects and a Vsync on, but this is hard to compare with different Engines. And not good to see with Vsync on, or a routine which reduces move-speed in relationship to CPU speed. |
| ||
Ploppy, just wanted to ask: the commands dxDrawImage or dxDrawImagePart still missing to draw images on the screen .. if you have time ... |
| ||
@ploppy: we hope you could solve the fps problem. @Wolf1870: what you want is an animimage(animsprite) command.right?2D is cool for retro games. |
| ||
I think that picture commands are required for 2D or 3D, whether as retro games (my good old C-64 ;-))- or as menu images. There are certainly countless possibilities... |
| ||
Just managed to find an xp machine to test it on - it seems that it does not work in debug mode, but does in release mode. Weird. I'll have to check out why, should work in both... Otherwise, no dx11 detection - this is what I want, transparency... This means I can get working on the dx11 part... yay... |
| ||
@Ploppy Did you use DXUT or much callbacks in your code ? In the last weeks I experiment a bit with DirectX 11 and with the DXUT Framework "that uses much callbacks in my book-examples" the code is extremely slower than e.g. the examples on the RasterTek side. And extremely is 500-800 FPS against over 6000 FPS. And the 500-800 FPS only with the simple sample from the DirectX SDK Sample Browser. OK there is a GUI on it with DXUT, but that much lower FPS is not akzeptable for me. And I also have experimented with an 3D Engine and C++, if I use callbacks instead normal Functions the FPS rate slows down. |
| ||
I try to avoid callbacks as much as I try to avoid threads; at least when I can. |
| ||
@ploppy: i tried 2 examples with different engines wich only display and rotate the dwarf. The result of both engines is ~800FPS(have only a slow graphiccard).Hardwired only 400FPS! |
| ||
I have checked out the my code, can't figure out why for the moment - have even tried a stripped down version of the code - same fps as usual. For me, the fps has never droppped from around 1500 for test10.bb. I'll sort this out but I'll have to do some snooping around in the code. I has a good look at Irrlicht last night, I like the begin/end scene commands. I think I will add these commands, plus some render entity command to give the programmer more choice - this way if you like you can skip the world management provided by hardwired and cut to the essential (but with the disadvantage of having to manage objects within the blitzcode of course.) No releases for the next few days in my opinion, am now working on dx11 part. Looking good so far... |
| ||
Nevermind, I missed the part where dxGraphics3D was updated. "When I run the dxEntityBlend.bb demo it throws a "too many variables" error right at the first line. If I remove the v-sync from the dxGraphics3d command then the demo runs correctly(from what I can tell). Windows 7-64,AMD Radeon HD 5800 Series" |
| ||
I've missed something, do not understand what DirectX 11 ... Edit: The trial version of DirectX 11 here shows no errors. In this case I think it all goes well. |
| ||
Are there any plans to update the CaptureWorld command and the tween# functionality in RenderWorld? |
| ||
Hi Buff Jigsaw, I do plan to get all the blitz commands covered and all their parameters, but it'll take some time. It's turning out to be a bigger monster than I first anticipated... |
| ||
Everything looks fine in windows 8: D |
| ||
Hi Ploppy ran the update including the vlc dll's on Win7 Ultim x64: All working great now. P.S.: Irrlicht is a pretty good engine and probably already OK for great game creation right now with some really great features and characteristics that can make a person drool, but it's a whole different beast in itself and even though the commands have now been Blitz-a-tized, it's no Blitz 2.0 in my opinion. I believe your approach in the long run is better for the survival of Blitz cos it's the long awaited Blitz sequel with DX9.0 and probably DX11.0 (Blitz 3.0?), while Irrlicht is more like a very advanced spinoff. I think both engines deserve their own place in the hall of fame. |
| ||
I think both engines deserve their own place in the hall of fame. I couldnt said better and I agree :) probably DX11.0 (Blitz 3.0?), I cant wait to test em(when come along) because there will more effect than what it can do on DX 9! |
| ||
Apparently MS is getting ready to announce DX12 now: http://www.kdramastars.com/articles/16917/20140306/gdc-2014-dx12.htm (Although I'm sure that history will repeat itself, and they'll likely lock it into windows 8.x/9 in an ill-advices attempt to persuade people to upgrade their OS, but instead will lead to people to ignore the latest DX altogether because it won't work on the vast majority of existing PCs out there) |
| ||
I have to say I'm very curious to see what dx11 has to offer that dx9 doesn't have. Dx9 was an important step up from dx7 mainly because of shader programming capabilities - but what's new in dx11?? Guess we're going to find out. And now dx12 - another one?? OMG, it almost makes me want to break open a bottle of whisky to drown my sorrows ;D I haven't even finished writing the dx9 stuff and have only just begun seriously on the dx11 routines (already finished entity position/rotation/scaling). And now dx12??? Well, at least I have one consolation - if it is true that dx12 will only work on windows 9 and you possiblty need a compatible gfx adapter to get it to run, then I won't be able to get it to run on my machine anyway. Let's just wait 'n see what microsoft has to announce. |
| ||
The most 3D Engines mostly uses DX9 and OpenGL 2.0 -3.x today, only commercial game productions uses the actual versions of DX11.x and OpenGL4.x . So programming in DX11 will be good for the next 10 years. DX7 runs on my win7 64bit with Blitz3d and DX11 will run on machines in 10-15 years surely. I believe that DX12 is only an upgrade to DX11 and have not that differences inside like DX7 to DX9 and DX9 to DX11 |
| ||
@Ploppy: Wow. You are already starting on the DX11 bits?? You are busy bee. So do you consider the DX9 part a wrap now(it has a whole load of commands, time for some serious programming from our side?) or are you just side tracking for the moment or planning to finish both at the same time? I wouldn't worry too much about DX12(yet). It will probably take ages before catching on, especially if it requires new hardware. If not, well then it's your soon to be established company's next project; Blitz 'Hardwired' version 4.0 DX12 (in 2015-16) ;-) |
| ||
No, the dx9 side isn't complete in any way - I have a LOT of loose ends to tie up, and missing blitz commands to add. I haven't yet finished animation stuff, models are still stiff. Mesh loading is incomplete, collision detection is only half done, and some fine tuning has to be done yet again on the renderer. I also wish to improve the text routines as I can speed them up tenfold. I just like to go off of tangents when the mood takes me. Last sunday I thought to myself 'and why don't I tackle video and see how far I get' even when I haven't completely finished the shadow routines (to which I will come back). Have pretty much completed the video part with the help of vlc, and looking really great (so smooth). So, I'd thought i'd give dx11 another go. I am not developing hardwired in any particular order, I go where my mood takes me from day to day. It's not a very structured way of programming I'll admit but I'm not a very structured person. Still, I think that at one moment I'll only have loose ends to tie up (perhaps a thousand of them, but all loose ends ;D ). We'll see... |
| ||
:-) Well whatever works for you. I'm working on 4-5 different things too but no way near as productive and at not even close to the same level as you. I'm still amazed how you do all that though without being a programmer by profession cos I would have gone lost in the woods long time ago, tearing off my clothes and running around with my hands up high in the sky and screaming from the top of my lungs.. ;-) But how do you keep track? Do you keep a list of which Blitz commands haven't yet been converted(besides the one you have now of commands done already: 332 according to Excel)? Besides that: do you, or anybody else know how many commands Blitz currently consists off? |
| ||
I'm constantly testing, retesting and scanning most of my source. When I modify/improve or add to a command I often have to modify other routines at the same time so it all links together well (not to mention all the memory considerations that come with c++). It's a whole big jigsaw puzzle, and I am pretty new to this c++ thing so I'm discovering new techiques all the time. I know what you mean about running around arms-in-air and all. Part of me feels like giving up, I'll admit. But I'm sick of giving up for things and from what I have witnessed I KNOW I am capable of doing it due to my perseverence and (un)healthly obsession. I constantly remind myself of all the hours and headaches I have spent on this project up 'til now. I have well passed the point that if I give up, I will have wasted such an investment of time and energy with nothing to show et the end. I have to go all the way with this, the only things that could hinder my progess are outside factors such as family and work. I just have to make it as professional and bug-free as possible or else people will just not use hardwired. My dll will really only have some real lasting value for me the day someone uses it for a project and gets it published. It'd be great to know that someone used HW and got something out of it - would make it all worthwhile... |
| ||
I know what you mean regarding those last ones, hehehe. My girlfriend sitting on the couch right next to me looking a bit, like: lets go outside. LOL Buttah: I edited my original post above and added: Do you keep a list of which Blitz commands haven't yet been converted(besides the one you have now of commands done already: 332 according to Excel)? Besides that: do you, or anybody else know how many commands Blitz currently consists off? Well was holding back a bit with the chances of syntax changing etc and due above mentioned factors not to mention my already running projects, but I'm positive that I would be able to convert them(and will) to Hardwired cos it would surely benefit from it. Especially since you've added shadows and planning on adding physics. My current game project consists out of a free roaming terrain, with indoor scenery and runs on Blitz3d making use of FastExtend for shadows and water/reflections + PhysX for well.. physics, the Devils particle engine and a blur library. |
| ||
Sounds good, and I hope HW won't let you down. It it far from my intention to waste my own and others' precious time. As long as I can get thoses grey cells working, I'll do it. As always, no promises - what you see is what you get; after all I'm under no obligation whatsoever and under no contract for any of it. All I can say is that my intentions are still strong and hope to bundle as much as I can together and all that for no charge and no strings attached. |
| ||
No pressure. ;-) We(I think I speak for the majority with this) are already pretty thankful for your accomplishments sofar. I see lot of old Blitzers coming back seeing what the buzz is about. Hope you manage to hold out(and keep the fam happy at same time). Take care. I'm off(for now). (BTW still working on Simplanetary also but had a couple of issues to attend to also regarding health and reinstalling my laptop, slowing things down.) |
| ||
Forward Ploopy!, I am among those who admire people with echos when really show what they know and in the state in which they are towards learning. Many turned their backs to Blitz3D at the time, but that is ratifies and something that most users like me are not programmers and we love tools that make life much easier. In this case when the project is mature enough, I'm partario you acquire some monetary incentive to your account to be motivated to provide support and that many users would be willing to pay, of course by that I throw the rope to the neck and I do not think you can pay, however I encourage you to continue in this project. A greeting. |
| ||
Anyone else notice that the latest geforce driver 334.89 wont let (vanilla)Blitz3D1.108 go fullscreen? Geforce GTX 670 windows 7 64 bit |
| ||
Hi Yue, I think I understand what you are saying - sorry your english a bit hard to decode there. Yes, I know what you mean that a 'monetary incentive' would help spurn me on, of course - and who knows I could get a lot if I released this for a price at the end, but I do not wish to charge for this. I am primarily a blitz user, and as a blitz user I am sick of waiting around for something that was just not going to happen, so I want to give this away to blitz users who were/are just as frustrated as I am for some new base to work on. And I hated what the Xors3d people did to the blitz community - was so very promising that software and then at the end they turned out to be scheisters. I do not wish to lose people's hard earned trust. If, at the end when my project is complete, someone wishes to 'donate' for hardwired I will create a donate button on my website - but I will leave that an option. That's all. If this makes me a fool, then so be it, but I will at least have some pride in having released something usable to the public, and perhaps have some credibility thrown in too. |
| ||
@Buff Jigsaw I have this Driver installed, but I have no problem with fullscreen. Normal DX7 Blitz3D can fullscreen and Hardwired with Blitz3D can also without problems go in fullscreen. Geforce GTX 560 Win 7 64 bit |
| ||
Possibly you have Debug enabled? |
| ||
@Iamhere thx for the tip. Its not specific to debug enabled. However when debug is enabled the error is a memory access violation at the Flip command in various blitz programs. I upgraded to the driver because of other screwy system behavior. So maybe something else is going on. I will keep digging. Thx! |
| ||
@Iamhere looks like it had something to do with either the Preferred Refresh Rate or Vertical Sync driver setting. I set these back to their defaults and it works like normal now. Thx for the help. edit: yep it was the Preferred Refresh Rate setting. |
| ||
Buff, really happy about your news, I must say I'm relieved its not HW that was messing up (which was possible of course- still very much in development). May have my first release with some dx11 functionality included by the weekend. I have already adapted about 100 commands to it, and am presenly working on the renderer. This dx is much more shader intensive than the previous ones, in fact without shaders you can't do much at all. It seems I may have bitten off more than I can chew with dx11 - but what the hell; I have strong teeth... :D Quite honestly, if I ever get hardwired complete, attaining the goals/aspirations that I have set myself, I can see myself with an 800-1000 function count at the end - especially with the new dx11 stuff that can be exploited. Yikes! |
| ||
Install windows7 on my laptop for test in Dirext 11 |
| ||
Hehehe, 800-1000: that's not a huge update to Blitz anymore, but a whole new language! (Hint to Mark: hire this guy) Well, appears you've been successful with all you did so far on this Ploppy, so you're obviously capable enough. A daunting task nevertheless. That donation button will come in handy(very good idea). The name "Blitz HardWired II (DX11)" would be well deserved. |
| ||
No need to change the name. I decided to call it hardwired on purpose so not to relate it necesarily only with dx9. When I started this project my first routines were actually in dx11, but quickly realised I would need to start with a dx9 base which is very important to have for wide support on all machines. Keeping the name nice and ambiguous doesn't chain me down in any way. |
| ||
Ahah, that explains a bit. Well DX11 it is then. :-D |
| ||
@ploppy: have you a testable dll for dx11? |
| ||
No - still working on it. First version should be ready by the weekend with a bit of luck. Both dx9 and dx11 modes are coded in the same dll, so I have to work on compatbility between modes for each command. |
| ||
Rad! |
| ||
sounds very very great |
| ||
Don't get too excited too quickly : first version will be basic for dx11 just to make sure it renders correctly. |
| ||
Post deleted due to forum error.. |
| ||
Ran a quick check on the amount of standard Blitz3D commands and came at (give or take): 578. (Of course thia contains also a lot of standard BASIC commands which do not require any changes/conversions, such as For, Next, If, ABS, etc) The last Hardwired command list contains 332 already, with lots of additional and enhanced commands. So I think your estimations may be pretty accurate.. :-) Link to Lists |
| ||
Both dx9 and dx11 modes are coded in the same dll, so I have to work on compatbility between modes for each command. Hopefully using DX9 only still won't require DX11 to be installed. |
| ||
It shouldn't - My goal is max compatibility.. |
| ||
New thread.... http://blitzbasic.com/Community/posts.php?topic=102259 |
| ||
@Yue: Hi, Did you create an update to your blitz3d>hardwired conversion include, that was called dx9.bb? I think it was a great idea. Greetz, Rick |