Hi Everyone, I would like to present my newest plugin: jGfx. It combines the commandsets of my previous ID3DXEffect and MRT plugins, plus adds commandsets for dynamic cubemap textures, geometry instancing and postfilter cameras. There are no help files yet, but the download comes with a keywords file and a few example projects.

Shader_ Commandset Features:

*) Get/Set effect constants using pointers or by value

*) Supports all 32-bit numerical HLSL datatypes and arrays

*) Uses parameter handles to decrease string-based constant lookups

MRT_ Commandset Features:

*) Provides concurrent rendering to up to 4 target images with a single sync

CubeTex_ Commandset Features:

*) Provides creation of dynamic cubemaps using any supported image format

*) No hard-coded limit to the number of dynamic cubemaps in existance

*) Supports cubemap resolutions which are greater than the screen height

*) Allows rendering individual cubemap faces

*) Able to Save rendered cubemaps to file

GeoInst_ Commandset Features:

*) Provides hardware accelerated rendering of mesh instances by interleaving vertexdata with an array of instance data

*) Supports user-defined element definition for storing custom data on a per-instance basis

EfxCam_ Commandset Features:

*) Performs off-screen quad renders without being slowed by dbpro object counts

*) Mimics the native camera commands for ease of use

Update 03/11/2018:

================================================

*) Now comes with help files.

*) Added a command which was supposed to be in the previous release.

New Commands (1):

------------------------------------------------

CubeTex_GenerateMipSubLevels pCubeTex //Indicates to the driver that now is an appropriate time to generate mipmaps.

Command List (155 Total):

Poke Vec2=jGfx\Poke_Vec2.html=pMem, X#, Y#
Poke Vec3=jGfx\Poke_Vec3.html=pMem, X#, Y#, Z#
Poke Vec4=jGfx\Poke_Vec4.html=pMem, X#, Y#, Z#, W#
Poke Mat4=jGfx\Poke_Mat4.html=pMem, _11#, _12#, _13#, _14#, _21#, _22#, _23#, _24#, _31#, _32#, _33#, _34#, _41#, _42#, _43#, _44#
SMesh_GetShaderPtr=jGfx\SMesh_GetShaderPtr.html=(pMesh)
Object_GetShaderPtr=jGfx\Object_GetShaderPtr.html=(ObjectID, LimbID)
Shader_GetParameterByName=jGfx\Shader_GetParameterByName.html=(pEffect, hParam, NameStr)
Shader_GetParameterBySemantic=jGfx\Shader_GetParameterBySemantic.html=(pEffect, hParam, SemanticNameStr)
Shader_GetParameterElement=jGfx\Shader_GetParameterElement.html=(pEffect, hParam, ElementIndex)
Shader_GetValue=jGfx\Shader_GetValue.html=pEffect, hParam, pData, pBytes
Shader_SetValue=jGfx\Shader_SetValue.html=pEffect, hParam, pData, pBytes
Shader_GetBool=jGfx\Shader_GetBool.html=pEffect, hParam, ptr_Bool
Shader_SetBool=jGfx\Shader_SetBool.html=pEffect, hParam, ptr_Bool
Shader_GetBoolVal=jGfx\Shader_GetBoolVal.html=(pEffect, hParam)
Shader_SetBoolVal=jGfx\Shader_SetBoolVal.html=pEffect, hParam, BoolVal
Shader_GetInt=jGfx\hader_GetInt.html=pEffect, hParam, ptr_Int
Shader_SetInt=jGfx\Shader_SetInt.html=pEffect, hParam, ptr_Int
Shader_GetIntVal=jGfx\Shader_GetIntVal.html=(pEffect, hParam)
Shader_SetIntVal=jGfx\Shader_SetIntVal.html=pEffect, hParam, IntVal
Shader_GetFloat=jGfx\Shader_GetFloat.html=pEffect, hParam, ptr_Float
Shader_SetFloat=jGfx\Shader_SetFloat.html=pEffect, hParam, ptr_Float
Shader_GetFloatVal=jGfx\Shader_GetFloatVal.html=(pEffect, hParam)
Shader_SetFloatVal=jGfx\Shader_SetFloatVal.html=pEffect, hParam, FloatVal#
Shader_GetVector=jGfx\Shader_GetVector.html=pEffect, hParam, ptr_Vector
Shader_SetVector=jGfx\Shader_SetVector.html=pEffect, hParam, ptr_Vector
Shader_GetVectorVal=jGfx\Shader_GetVectorVal.html=pEffect, hParam
Shader_SetVectorVal=jGfx\Shader_SetVectorVal.html=pEffect, hParam, X#, Y#, Z#, W#
Shader_GetMatrix=jGfx\Shader_GetMatrix.html=pEffect, hParam, ptr_Matrix
Shader_SetMatrix=jGfx\Shader_SetMatrix.html=pEffect, hParam, ptr_Matrix
Shader_GetMatrixVal=jGfx\Shader_GetMatrixVal.html=pEffect, hParam
Shader_SetMatrixVal=jGfx\Shader_SetMatrixVal.html=pEffect, hParam, _11#, _12#, _13#, _14#, _21#, _22#, _23#, _24#, _31#, _32#, _33#, _34#, _41#, _42#, _43#, _44#
Shader_GetMatrixTranspose=jGfx\Shader_GetMatrixTranspose.html=pEffect, hParam, ptr_Matrix
Shader_SetMatrixTranspose=jGfx\Shader_SetMatrixTranspose.html=pEffect, hParam, ptr_Matrix
Shader_GetMatrixTransposeVal=jGfx\Shader_GetMatrixTransposeVal.html=pEffect, hParam
Shader_SetMatrixTransposeVal=jGfx\Shader_SetMatrixTransposeVal.html=pEffect, hParam, _11#, _12#, _13#, _14#, _21#, _22#, _23#, _24#, _31#, _32#, _33#, _34#, _41#, _42#, _43#, _44#
Shader_SetArrayRange=jGfx\Shader_SetArrayRange.html=pEffect, hParam, Start, Stop
Shader_GetBoolArray=jGfx\Shader_GetBoolArray.html=pEffect, hParam, ptr_BoolArr, Count
Shader_SetBoolArray=jGfx\Shader_SetBoolArray.html=pEffect, hParam, ptr_BoolArr, Count
Shader_GetIntArray=jGfx\Shader_GetIntArray.html=pEffect, hParam, ptr_IntArr, Count
Shader_SetIntArray=jGfx\Shader_SetIntArray.html=pEffect, hParam, ptr_IntArr, Count
Shader_GetFloatArray=jGfx\Shader_GetFloatArray.html=pEffect, hParam, ptr_FloatArr, Count
Shader_SetFloatArray=jGfx\Shader_SetFloatArray.html=pEffect, hParam, ptr_FloatArr, Count
Shader_GetVectorArray=jGfx\Shader_GetVectorArray.html=pEffect, hParam, ptr_VecArr, Count
Shader_SetVectorArray=jGfx\Shader_SetVectorArray.html=pEffect, hParam, ptr_VecArr, Count
Shader_GetMatrixArray=jGfx\Shader_GetMatrixArray.html=pEffect, hParam, ptr_MatArr, Count
Shader_SetMatrixArray=jGfx\Shader_SetMatrixArray.html=pEffect, hParam, ptr_MatArr, Count
Shader_GetMatrixTransposeArray=jGfx\Shader_GetMatrixTransposeArray.html=pEffect, hParam, ptr_MatArr, Count
Shader_SetMatrixTransposeArray=jGfx\Shader_SetMatrixTransposeArray.html=pEffect, hParam, ptr_MatArr, Count
Shader_GetMatrixPointerArray=jGfx\Shader_GetMatrixPointerArray.html=pEffect, hParam, ptr_pMatArr, Count
Shader_SetMatrixPointerArray=jGfx\Shader_SetMatrixPointerArray.html=pEffect, hParam, ptr_pMatArr, Count
Shader_GetMatrixTransposePointerArray=jGfx\Shader_GetMatrixTransposePointerArray.html=pEffect, hParam, ptr_pMatArr, Count
Shader_SetMatrixTransposePointerArray=jGfx\Shader_SetMatrixTransposePointerArray.html=pEffect, hParam, ptr_pMatArr, Count
Shader_Return=jGfx\Shader_Return.html=(ElementIndex)
Shader_GetTechniqueByName=jGfx\Shader_GetTechniqueByName.html=(pEffect, NameStr)
Shader_GetCurrentTechnique=jGfx\Shader_GetCurrentTechnique.html=(pEffect)
Shader_SetTechnique=jGfx\Shader_SetTechnique.html=pEffect, hTech
Shader_SetTechniqueName=jGfx\Shader_SetTechniqueName.html=pEffect, NameStr$
Shader_SetVectorPointerArray=jGfx\Shader_SetVectorPointerArray.html=pEffect, hParam, ptr_pVecArr, VecStride, Count
Shader_GetVectorPointerArray=jGfx\Shader_GetVectorPointerArray.html=pEffect, hParam, ptr_pVecArr, VecStride, Count
MRT_MaxSimultaneousRTs=jGfx\MRT_MaxSimultaneousRTs.html=()
MRT_IndependentBitDepths=jGfx\MRT_IndependentBitDepths.html=()
MRT_PostPixelShaderBlending=jGfx\MRT_PostPixelShaderBlending.html=()
MRT_PostPixelFormatSupport=jGfx\MRT_PostPixelFormatSupport.html=(D3DFMT)
MRT_Sync=jGfx\MRT_Sync.html=CameraID, TargetImgB, TargetImgC, TargetImgD
MRT_MakeRenderTarget=jGfx\MRT_MakeRenderTarget.html=ImageID, Width, Height [, D3DFMT]
CubeTex_MakeNew=jGfx\CubeTex_MakeNew.html=(Resolution, bMipMap)||(Resolution, bMipMap, D3DFMT)
CubeTex_Delete=jGfx\CubeTex_Delete.html=pCubeTex
CubeTex_SetMipFilter=jGfx\CubeTex_SetMipFilter.html=pCubeTex, D3DTEXF
CubeTex_ApplyObject=jGfx\CubeTex_ApplyObject.html=pCubeTex, ObjectID, StageID
CubeTex_ApplyLimb=jGfx\CubeTex_ApplyLimb.html=pCubeTex, ObjectID, LimbID, StageID
CubeTex_Save=jGfx\CubeTex_Save.html=pCubeTex, FileName$
CubeTex_DrawToFace=jGfx\CubeTex_DrawToFace.html=pCubeTex, FaceID
CubeTex_CheckFormatSupport=jGfx\CubeTex_CheckFormatSupport.html=(D3DFMT)
CubeTex_Sync=jGfx\CubeTex_Sync.html=pCubeTex, CameraID
CubeTex_SyncFaces=jGfx\CubeTex_SyncFaces.html=pCubeTex, CameraID, dwMaskBits
CubeTex_SetPosition=jGfx\CubeTex_SetPosition.html=pCubeTex, X#, Y#, Z#
CubeTex_SetRange=jGfx\CubeTex_SetRange.html=pCubeTex, Near#, Far#
CubeTex_GetPositionX=jGfx\CubeTex_GetPositionX.html=(pCubeTex)
CubeTex_GetPositionY=jGfx\CubeTex_GetPositionY.html=(pCubeTex)
CubeTex_GetPositionZ=jGfx\CubeTex_GetPositionZ.html=(pCubeTex)
CubeTex_GetNear=jGfx\CubeTex_GetNear.html=(pCubeTex)
CubeTex_GetFar=jGfx\CubeTex_GetFar.html=(pCubeTex)
CubeTex_GetDrawCalls=jGfx\CubeTex_GetDrawCalls.html=()
CubeTex_GetDrawPrimitives=jGfx\CubeTex_GetDrawPrimitives.html=()
CubeTex_GetResolution=jGfx\CubeTex_GetResolution.html=(pCubeTex)
CubeTex_GetFormat=jGfx\CubeTex_GetFormat.html=(pCubeTex)
CubeTex_GetMipmapGeneration=jGfx\CubeTex_GetMipmapGeneration.html=(pCubeTex)
CubeTex_SyncMRT=jGfx\CubeTex_SyncMRT.html=pCubeTex, pCubeTexB, pCubeTexC, pCubeTexD, CameraID
CubeTex_SyncFacesMRT=jGfx\CubeTex_SyncFacesMRT.html=pCubeTex, pCubeTexB, pCubeTexC, pCubeTexD, CameraID, dwMaskBits
CubeTex_GenerateMipSubLevels=jGfx\CubeTex_GenerateMipSubLevels.html=pCubeTex
GeoInst_MakeNew=jGfx\GeoInst_MakeNew.html=()
GeoInst_Delete=jGfx\GeoInst_Delete.html=pGInst
GeoInst_SetHidden=jGfx\GeoInst_SetHidden.html=pGInst, bHidden
GeoInst_GetHidden=jGfx\GeoInst_GetHidden.html=(pGInst)
GeoInst_SetCameraMask=jGfx\GeoInst_SetCameraMask.html=pGInst, dwMaskBits
GeoInst_GetCameraMask=jGfx\GeoInst_GetCameraMask.html=(pGInst)
GeoInst_SetMesh=jGfx\GeoInst_SetMesh.html=pGInst, ObjectID, LimbID
GeoInst_GetMeshObject=jGfx\GeoInst_GetMeshObject.html=(pGInst)
GeoInst_GetMeshLimb=jGfx\GeoInst_GetMeshLimb.html=(pGInst)
GeoInst_SetMaxInstanceCount=jGfx\GeoInst_SetMaxInstanceCount.html=pGInst, Count
GeoInst_GetMaxInstanceCount=jGfx\GeoInst_GetMaxInstanceCount.html=(pGInst)
GeoInst_SetInstanceCount=jGfx\GeoInst_SetInstanceCount.html=pGInst, Count
GeoInst_GetInstanceCount=jGfx\GeoInst_GetInstanceCount.html=(pGInst)
GeoInst_SetExcluded=jGfx\GeoInst_SetExcluded.html=pGInst, Index, bExcluded
GeoInst_GetExcluded=jGfx\GeoInst_GetExcluded.html=(pGInst, Index)
GeoInst_SetPosition=jGfx\GeoInst_SetPosition.html=pGInst, Index, X#, Y#, Z#
GeoInst_GetPositionX=jGfx\GeoInst_GetPositionX.html=(pGInst, Index)
GeoInst_GetPositionY=jGfx\GeoInst_GetPositionY.html=(pGInst, Index)
GeoInst_GetPositionZ=jGfx\GeoInst_GetPositionZ.html=(pGInst, Index)
GeoInst_SetRotation=jGfx\GeoInst_SetRotation.html=pGInst, Index, X#, Y#, Z#
GeoInst_GetAngleX=jGfx\GeoInst_GetAngleX.html=(pGInst, Index)
GeoInst_GetAngleY=jGfx\GeoInst_GetAngleY.html=(pGInst, Index)
GeoInst_GetAngleZ=jGfx\GeoInst_GetAngleZ.html=(pGInst, Index)
GeoInst_SetScale=jGfx\GeoInst_SetScale.html=pGInst, Index, Percent# || pGInst, Index, X#, Y#, Z#
GeoInst_GetScaleX=jGfx\GeoInst_GetScaleX.html=(pGInst, Index)
GeoInst_GetScaleY=jGfx\GeoInst_GetScaleY.html=(pGInst, Index)
GeoInst_GetScaleZ=jGfx\GeoInst_GetScaleZ.html=(pGInst, Index)
GeoInst_DeclareCustomElements=jGfx\GeoInst_DeclareCustomElements.html=pGInst, bWorldMat
GeoInst_AddCustomElement=jGfx\GeoInst_AddCustomElement.html=pGInst, NumFloats
GeoInst_FinishCustomElements=jGfx\GeoInst_FinishCustomElements.html=pGInst
GeoInst_DeleteCustomElements=jGfx\GeoInst_DeleteCustomElements.html=pGInst
GeoInst_SetCustomData=jGfx\GeoInst_SetCustomData.html=pGInst, Index, Element, X# [, Y# [, Z# [, W# ]]]
GeoInst_GetCustomDataX=jGfx\GeoInst_GetCustomDataX.html=(pGInst, Index, Element)
GeoInst_GetCustomDataY=jGfx\GeoInst_GetCustomDataY.html=(pGInst, Index, Element)
GeoInst_GetCustomDataZ=jGfx\GeoInst_GetCustomDataZ.html=(pGInst, Index, Element)
GeoInst_GetCustomDataW=jGfx\GeoInst_GetCustomDataW.html=(pGInst, Index, Element)
GeoInst_GetWorldMatrixPtr=jGfx\GeoInst_GetWorldMatrixPtr.html=(pGInst, Index)
GeoInst_SetWorldMatrixPtr=jGfx\GeoInst_SetWorldMatrixPtr.html=pGInst, Index, pMatrix4
GeoInst_GetCustomDataPtr=jGfx\GeoInst_GetCustomDataPtr.html=(pGInst, Index, Element)
GeoInst_SetCustomDataPtr=jGfx\GeoInst_SetCustomDataPtr.html=pGInst, Index, Element, pFloats
GeoInst_Update=jGfx\GeoInst_Update.html=pGInst
GeoInst_UpdateInstance=jGfx\GeoInst_UpdateInstance.html=pGInst, Index
GeoInst_GetDrawCount=jGfx\GeoInst_GetDrawCount.html=(pGInst)
GeoInst_GetDrawPrimitives=jGfx\GeoInst_GetDrawPrimitives.html=(pGInst)
GeoInst_CheckDeviceSupport=jGfx\GeoInst_CheckDeviceSupport.html=(pGInst)
GeoInst_SetRenderPriority=jGfx\GeoInst_SetRenderPriority.html=pGInst, Priority
GeoInst_GetRenderPriority=jGfx\GeoInst_GetRenderPriority.html=(pGInst)
GeoInst_GetRenderIndex=jGfx\GeoInst_GetRenderIndex.html=(pGInst)
GeoInst_SortRenderQueue=jGfx\GeoInst_SortRenderQueue.html=*no parameters*
EfxCam_MakeNew=jGfx\EfxCam_MakeNew.html=FxCamID
EfxCam_Delete=jGfx\EfxCam_Delete.html=FxCamID
EfxCam_GetExist=jGfx\EfxCam_GetExist.html=(FxCamID)
EfxCam_SetBackdropEnabled=jGfx\EfxCam_SetBackdropEnabled.html=FxCamID, bEnabled
EfxCam_SetBackdropColor=jGfx\EfxCam_SetBackdropColor.html=FxCamID, dwColor
EfxCam_SetToImage=jGfx\EfxCam_SetToImage.html=FxCamID, ImageID, Width, Height [, D3DFMT]
EfxCam_SetObject=jGfx\EfxCam_SetObject.html=FxCamID, ObjectID
EfxCam_SetAspect=jGfx\EfxCam_SetAspect.html=FxCamID, Aspect#
EfxCam_SetFOV=jGfx\EfxCam_SetFOV.html=FxCamID, FOV#
EfxCam_SetRange=jGfx\EfxCam_SetRange.html=FxCamID, Near#, Far#
EfxCam_SetView=jGfx\EfxCam_SetView.html=FxCamID, Left, Top, Right, Bottom
EfxCam_SetPosition=jGfx\EfxCam_SetPosition.html=FxCamID, X#, Y#, Z#
EfxCam_SetRotation=jGfx\xCam_SetRotation.html=FxCamID, X#, Y#, Z#
EfxCam_SyncMask=jGfx\fxCam_SyncMask.html=dwMaskBits
EfxCam_Sync=jGfx\EfxCam_Sync.html=*no parameters*
EfxCam_SetMRTImage=jGfx\EfxCam_SetMRTImage.html=FxCamID, TargetIndex, ImageID [, D3DFMT]

All comments, questions, and suggestions are welcome.