linus Posted September 24, 2010 Posted September 24, 2010 Just to avoid double work: some time ago I asked for help with particle example. Finally I got it now running. Anyway: Thanks a lot to those downloading the non-working example and having a look!
fireryblaze Posted September 24, 2010 Posted September 24, 2010 (edited) YES LINUS YOU ARE THE BEST!!! FInaly I can make my flaming tornado...But Ive said to much already.. Edited September 24, 2010 by fireryblaze
Werty Posted September 25, 2010 Posted September 25, 2010 Ok, this is scary, my nvidia GTX275 makes wierd whiny noises when running this stuff Anyone else experiencing this ? I prolly dont dare trying anymore if it pops my gfx card I can play huge games like crysis and farcry2 without any noise, but this makes my card cry. Some guy's script + some other guy's script = my script!
fireryblaze Posted September 25, 2010 Posted September 25, 2010 (edited) Ok, this is scary, my nvidia GTX275 makes wierd whiny noises when running this stuff Anyone else experiencing this ?I prolly dont dare trying anymore if it pops my gfx card I can play huge games like crysis and farcry2 without any noise, but this makes my card cry.I am not getting any noise... However you might try switching the driver tht is being used. There are three goodones that come with this. Take a look at _IRRStart, odds are your using $IRR_EDT_OPENGL, Try cahnging that to $IRR_EDT_DIRECT3D9 or $IRR_EDT_DIRECT3D8. That may solve your problem. Also go to nvidia and download the latest drivers, it could just be your driver is out of date and it is working overtime to compensate. Works fine on my nvidia Geforce 7800. Edited September 25, 2010 by fireryblaze
linus Posted September 25, 2010 Posted September 25, 2010 Anyone else experiencing this ?Nope - first time hearing this. The Irrlicht engine doing all the "magic" behind the au3Irr2 wrapper is widely used, so this will be a specific hardware/software thing I guess - updating drivers is always a good idea (but gamers usually have latest ones ). Maybe you can try examples of the original irrlicht engine to encircle the problem?And: anybody else out there with this GFX? Same problems or not?
linus Posted September 25, 2010 Posted September 25, 2010 YES LINUS YOU ARE THE BEST!!!Sometimes I am tempted to agree
fireryblaze Posted September 26, 2010 Posted September 26, 2010 (edited) Aight Version 3 of my tutorial/project thingy is now out and shows how to alternate between 2 scenes Via a Distance trigger(Get to close to the teleporter mat and you get sent to the other scene).A link to the thread can be found here Please leave feedbackOT: WOW my post count has been rising lateley... Edited September 26, 2010 by fireryblaze
Mat Posted September 26, 2010 Posted September 26, 2010 OT: WOW my post count has been rising lateley...Yes... It's probably quadrupled But as we all know... Size doesn't matter. AutoIt Project Listing
fireryblaze Posted September 26, 2010 Posted September 26, 2010 Yes... It's probably quadrupled But as we all know... Size doesn't matter.Actualy yea it has quadrupled... oh and heres another +1OT Again. Is anyone developing anything using this? I would like to check out how other people are doing things.
Zibit Posted September 26, 2010 Posted September 26, 2010 Hey so.. got a question: what is a Byref $vector in _IrrGetNodePosition() 2nd parameter (heres an example why i cant learn from examples) Creator Of Xtreme DevelopersPixel Pattern UDFTray GUI UDFMathssend & recive register scriptMouse Control via Webcam
linus Posted September 26, 2010 Posted September 26, 2010 Array returning x/y/z values of node position. From example 13: ; get the position of the camera into the three supplied variables dim $a_vector3df[3] _IrrGetNodePosition($CameraNode, $a_vector3df) ; create a wide string with a list of the positions in $metrics = "POSITION " & round($a_vector3df[0],0) & " " & round($a_vector3df[1],0) & " " & round($a_vector3df[2],0) & " "
Zibit Posted September 26, 2010 Posted September 26, 2010 Ok thx Creator Of Xtreme DevelopersPixel Pattern UDFTray GUI UDFMathssend & recive register scriptMouse Control via Webcam
smashly Posted September 27, 2010 Posted September 27, 2010 (edited) Hi, Thank you for the great library of functions. Can you also add the function _IrrDraw2DImageElementStretch() when you get the time. Example and Function:expandcollapse popup; Includes for extension libraries #include <au3Irrlicht2.au3> _IrrStart() Local $hLogo = _IrrGetTexture("./media/Cross.bmp") ; Use White as Alpha color _IrrColorKeyTexture($hLogo, 255, 255, 255) While _IrrRunning() And Sleep(10) _IrrBeginScene(255, 255, 0) ; Draw Original texture just to see what the unchanged texture looks like. _IrrDraw2DImage($hLogo, 0, 0) ;Draw texture smaller using Alpha beside the original. _IrrDraw2DImageElementStretch($hLogo, 128, 0, 192, 64, 0, 0, 128, 128, $IRR_USE_ALPHA) ;Draw texture Larger using Alpha beside the previous smaller texture. _IrrDraw2DImageElementStretch($hLogo, 192, 0, 448, 256, 0, 0, 128, 128, $IRR_USE_ALPHA) ;Draw beside Larger texture quarter of source texture to new larger destination not using Alpha. _IrrDraw2DImageElementStretch($hLogo, 448, 0, 800, 352, 0, 0, 64, 64, $IRR_IGNORE_ALPHA) _IrrEndScene() WEnd _IrrStop() ; #FUNCTION# ============================================================================================================= ; Name...........: _IrrDraw2DImageElementStretch ; Description ...: Draws specified rectangle from Source texture sizing it to fit the specified Desination rectangle. ; Syntax.........: _IrrDraw2DImageElementStretch($h_Texture, $i_DestTopX, $i_DestTopY, $i_DestBottomX, $i_DestBottomY, $i_SourceTopX, $i_SourceTopY, $i_SourceBottomX, $i_SourceBottomY, $i_UseAlpha) ; Parameters ....: $h_Texture - Handle to an irrlicht image object ; $i_DestTopX - Top X Destination where the drawing will start. ; $i_DestTopY - Top Y Destination where the drawing will start. ; $i_DestBottomX - Bottom X Destination where the drawing will end. ; $i_DestBottomY - Bottom Y Destination where the drawing will end. ; $i_SourceTopX - X top position of rectangle in the source texture ; $i_SourceTopY - Y top position of rectangle in the source texture ; $i_SourceBottomX - X bottom position of rectangle in the source texture ; $i_SourceBottomY - Y bottom position of rectangle in the source texture ; $i_UseAlpha - Whether or not to use the alpha channel should be one of the following values: ; |$IRR_IGNORE_ALPHA ; |$IRR_USE_ALPHA ; Return values .: Success - True ; Failure - False ; Author ........: ; Modified.......: ; Remarks .......: The image is copied from the specified rectangle in the source texture, this enables you to put many images onto a single texture. ; If the rectangles are different sizes this function will scale the images appropriately. ; This function also supports the alpha channel when drawing the image to the display and can draw the image transparently. ; Related .......: _IrrGetTexture, _IrrColorKeyTexture ; Link ..........: ; Example .......: Yes ; =============================================================================================================================== Func _IrrDraw2DImageElementStretch($h_Texture, $i_DestTopX, $i_DestTopY, $i_DestBottomX, $i_DestBottomY, $i_SourceTopX, $i_SourceTopY, $i_SourceBottomX, $i_SourceBottomY, $i_UseAlpha) DllCall($_irrDll, "none:cdecl", "IrrDraw2DImageElementStretch", "ptr", $h_Texture, "int", $i_DestTopX, "int", $i_DestTopY, "int", $i_DestBottomX, "int", $i_DestBottomY, "int", $i_SourceTopX, "int", $i_SourceTopY, "int", $i_SourceBottomX, "int", $i_SourceBottomY, "int", $i_UseAlpha) Return SetError(@error, 0, @error = 0) EndFunc ;==>_IrrDraw2DImageElementStretchCheers Edited September 27, 2010 by smashly
linus Posted September 27, 2010 Posted September 27, 2010 Can you also add the function _IrrDraw2DImageElementStretch() when you get the time.I nearly don't believe it - complete with example and help file block Of course I'll check it and put it in for next 2.04, thanks!
smashly Posted September 27, 2010 Posted September 27, 2010 Hi, Had a go at another minor function _IrrGetTextureInformation() But I didn't implement the return as the original wrapper mentioned. Your spose to pass the empty variables for each param and the function fills the variables. So I could of used ByRef for each param, but the way the call works in autoit, it seemed better to just return an array with the four elements.expandcollapse popup; Includes for extension libraries #include <au3Irrlicht2.au3> _IrrStart() Local $hLogo = _IrrGetTexture("./media/Cross.bmp") Local $aInfo = _IrrGetTextureInformation($hLogo) If Not @error Then _ MsgBox(64, "Texture Information", "Width: " & $aInfo[0] & @LF & "Height: " & $aInfo[1] & @LF & "Pitch: " & $aInfo[2] & @LF & "Color Format: " & $aInfo[3]) _IrrStop() ; #FUNCTION# ============================================================================================================= ; Name...........: _IrrGetTextureInformation ; Description ...: Get information on a texture. The width, height, pitch and color format is returned in an array. ; Syntax.........: _IrrGetTextureInformation($h_Texture) ; Parameters ....: $h_Texture - Handle to an irrlicht texture object ; Return values .: Success - 1D Array with the information ; |$Array[0] = Width of the texture ; |$Array[1] = Height of the texture ; |$Array[2] = Pitch of the texture ; |$Array[3] = Color Reference of the texture (eg: $ECF_A1R5G5B5, $ECF_R5G6B5, $ECF_R8G8B8, $ECF_A8R8G8B8) ; Failure - Empty Array and Sets @error to 1 ; Author ........: ; Modified.......: ; Remarks .......: This function will Hard Crash AutoIt if an Invalid $h_Texture is passed to the function. ; Related .......: _IrrGetTexture ; Link ..........: ; Example .......: Yes ; =============================================================================================================================== Func _IrrGetTextureInformation($h_Texture) Local $aResult, $aReturn[4] $aResult = DllCall($_irrDll, "none:cdecl", "IrrGetTextureInformation", "ptr", $h_Texture, "uint*", 0, "uint*", 0, "uint*", 0, "int*", 0) If @error Or UBound($aResult) <> 6 Then Return SetError(1, 0, $aReturn) For $i = 2 To 5 $aReturn[$i - 2] = $aResult[$i] Next Return SetError(0, 0, $aReturn) EndFunc ;==>_IrrGetTextureInformationCheers
linus Posted September 27, 2010 Posted September 27, 2010 Hi smashly, thanks again, seems I have to add you to credits ... Your help is definetly welcome, especially because I am currently not on the 2D include. If you like to add some more functions (I hope you'll do ), you can check latest dev version directly from the project page. I've updated files yesterday, so very up-to-date status (Of course more comfort if you check the complete thing out with a subversion client).BTW: Think remark in IrrGetTextureInformation's header is not needed (or we'll have to add it inside help for almost every au3Irr2 function using handles - it's unfortunately a limitation of au3 that we cannot create type-safe functions, especially when dealing with a lot of different pointer types)
smashly Posted September 27, 2010 Posted September 27, 2010 Hi again and your welcome, Not sure If I should just keep posting functions in the thread? Should I be submitting them another way? But anyways another simple function for Keyboard Mouse Management section. _IrrGetAbsoluteMousePosition()expandcollapse popup#include <au3Irrlicht2.au3> Global $aGAMP _IrrStart() While _IrrRunning() And Sleep(10) $aGAMP = _IrrGetAbsoluteMousePosition() _IrrSetWindowCaption("Absolute Mouse Poition - X: " & $aGAMP[0] & " Y: " & $aGAMP[1]) WEnd _IrrStop() ; #FUNCTION# ============================================================================================================= ; Name...........: _IrrGetAbsoluteMousePosition ; Description ...: Get the absolute mouse X and Y position ; Syntax.........: _IrrGetAbsoluteMousePosition() ; Parameters ....: None. ; Return values .: success - 1D Array containing absolute mouse position. ; |$Array[0] = X position of the mouse ; |$Array[1] = Y position of the mouse ; failure - Empty 1D Array and Set @error 1 ; Author ........: ; Modified.......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: Yes ; =============================================================================================================================== Func _IrrGetAbsoluteMousePosition() Local $aResult, $aReturn[2] $aResult = DllCall($_irrDll, "none:cdecl", "IrrGetAbsoluteMousePosition", "int*", 0, "int*", 0) If @error Or Not IsArray($aResult) Then Return SetError(1, 0, $aReturn) $aReturn[0] = $aResult[1] $aReturn[1] = $aResult[2] Return SetError(0, 0, $aReturn) EndFunc ;==>_IrrGetAbsoluteMousePositionCheers
linus Posted September 27, 2010 Posted September 27, 2010 (edited) Not sure If I should just keep posting functions in the thread?Should I be submitting them another way?Depends – if you have only some small corrections you can send me a PM (or to jRowe, but I think compared to him I have currently some more time for this). If you have several things, it’s easier to maintain the sources if you collect a little bit, then send .zip with modified files/added files. Then I can compare/check/integrate you’re your changes more easily. If you are interested in working on au3Irr2 regularly, it may also become senseful to give you write access to project page, but I prefer some organisation before so it’s possible to manage different people’s work without running out of control. Makes no sense when everybody starts to add into (and over!) what he believe it’s the best … Hope Jrowe agrees with this edit: integrated your contributions so they will be in next release. Thanks! Edited September 27, 2010 by linus
smashly Posted September 28, 2010 Posted September 28, 2010 (edited) Hi, Just a quick edit to _IrrSetTextureCreationFlag() function with an example. The Flag and Value params were the wrong way around. I was able to check this because of the _IrrGetTextureInformation() function I posted earlier expandcollapse popup#include <au3Irrlicht2.au3> ; Constants for 2D Management TEXTURE_CREATION_FLAG, needs to be added to au3Irr2_Constants.au3 Global Const $ETCF_ALWAYS_16_BIT = 0x00000001 Global Const $ETCF_ALWAYS_32_BIT = 0x00000002 Global Const $ETCF_OPTIMIZED_FOR_QUALITY = 0x00000004 Global Const $ETCF_OPTIMIZED_FOR_SPEED = 0x00000008 Global Const $ETCF_CREATE_MIP_MAPS = 0x00000010 Global Const $ETCF_NO_ALPHA_CHANNEL = 0x00000020 ;Example Start Global $hTexture, $aInfo _IrrStart() ; Set the Texture creation flag to load textures in 16 bit without alpha (R5G6B5 format) _IrrSetTextureCreationFlag(BitOR($ETCF_ALWAYS_16_BIT, $ETCF_NO_ALPHA_CHANNEL), $IRR_ON) ; Load a texture $hTexture = _IrrGetTexture("./media/cross.bmp") ; query some info about the loaded texture, index 3 of the returned array is Color Reference $aInfo = _IrrGetTextureInformation($hTexture) ; show the color format in a string to see the Texture creation flag was set MsgBox(64, "Texture color format", _TextureFormatString($aInfo[3])) _IrrStop() ; just for the example. Func _TextureFormatString($iValue) Local $sMsg Switch $iValue Case $ECF_R5G6B5 $sMsg &= "R5G6B5 - 16 bit without alpha channel" Case $ECF_A1R5G5B5 $sMsg &= "A1R5G5B5 - 16 bit with alpha channel" Case $ECF_R8G8B8 $sMsg &= "R8G8B8 - 24 bit without alpha channel" Case $ECF_A8R8G8B8 $sMsg &= "A8R8G8B8 - 32 bit with alpha channel" Case Else $sMsg &= "Unknown" EndSwitch Return $sMsg EndFunc ;==>_TextureFormatString ; example end ; function has been changed, the $i_Value, $i_Flag are now in their correct position within the dll call ; _Edit has been appended to the end of the function just so this example can run.. Remove it when updating au3Irr2_2D.au3 ; ; #FUNCTION# ============================================================================================================= ; Name...........: _IrrSetTextureCreationFlag ; Description ...: Sets texture creation flags controlling how textures are handled when they are created. ; Syntax.........: _IrrSetTextureCreationFlag($i_Flag, $i_Value) ; Parameters ....: $i_Value - The following flags can be set; ; |$ETCF_ALWAYS_16_BIT - Forces the driver to always create 16 bit textures, independently of which format the file on disk has. ; When choosing this you may loose some color detail, but gain speed and save memory. ; 16 bit textures can be transferred twice as quickly as 32 bit textures and only use half of the memory space. ; When using this flag, it does not make sense to use the flags ETCF_ALWAYS_32_BIT, ETCF_OPTIMIZED_FOR_QUALITY, or ETCF_OPTIMIZED_FOR_SPEED at the same time. ; |$ETCF_ALWAYS_32_BIT - Forces the driver to always create 32 bit textures, independently of which format the file on disk has. ; Note that some drivers (like the software device) will ignore this, because they are only able to create and use 16 bit textures. ; When using this flag, it does not make sense to use the flags ETCF_ALWAYS_16_BIT, ETCF_OPTIMIZED_FOR_QUALITY, or ETCF_OPTIMIZED_FOR_SPEED at the same time. ; |$ETCF_OPTIMIZED_FOR_QUALITY - Lets the driver decide in which format the textures are created and tries to make the textures look as good as possible. ; Usually it simply chooses the format in which the texture was stored on disk. ; When using this flag, it does not make sense to use the flags ETCF_ALWAYS_16_BIT, ETCF_ALWAYS_32_BIT, or ETCF_OPTIMIZED_FOR_SPEED at the same time. ; |$ETCF_OPTIMIZED_FOR_SPEED - Lets the driver decide in which format the textures are created and tries to create them maximizing render speed. ; When using this flag, it does not make sense to use the flags ETCF_ALWAYS_16_BIT, ETCF_ALWAYS_32_BIT, or ETCF_OPTIMIZED_FOR_QUALITY, at the same time. ; |$ETCF_CREATE_MIP_MAPS - Automatically creates mip map levels for the textures. ; |$ETCF_NO_ALPHA_CHANNEL - Discard any alpha layer and use non-alpha color format. ; $i_Flag - Turn Creation Flag Off or On ($IRR_OFF or $IRR_ON) ; Return values .: Success - True ; Failure - False ; Author ........: ; Modified.......: ; Remarks .......: ; Related .......: [todo: functionName, functionName] ; Link ..........: ; Example .......: Yes ; =============================================================================================================================== Func _IrrSetTextureCreationFlag_Edit($i_Value, $i_Flag) ; Remove _Edit DllCall($_irrDll, "none:cdecl", "IrrSetTextureCreationFlag", "int", $i_Value, "int", $i_Flag) Return SetError(@error, 0, @error = 0) EndFunc ;==>_IrrSetTextureCreationFlag_Edit ; Function already added in 2.04 release Func _IrrGetTextureInformation($h_Texture) Local $aResult, $aReturn[4] $aResult = DllCall($_irrDll, "none:cdecl", "IrrGetTextureInformation", "ptr", $h_Texture, "uint*", 0, "uint*", 0, "uint*", 0, "int*", 0) If @error Or UBound($aResult) <> 6 Then Return SetError(1, 0, $aReturn) For $i = 2 To 5 $aReturn[$i - 2] = $aResult[$i] Next Return SetError(0, 0, $aReturn) EndFunc ;==>_IrrGetTextureInformation Cheers Edited September 28, 2010 by smashly
Silverkorn Posted September 29, 2010 Posted September 29, 2010 Quick question about the whole thing... It's really intersting but does it includes irrKlang for sounds? Thanks!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now