Aber habe es eben mal Getestet und FlipScreen & ClearScreen durch eigenen code ersetzt funktioniert echt prima.
Hoffe es funktioniert auch wen der asm code mit DWORD ist. (bei mir läufts)
Code: Alles auswählen
Interface IDXGISwapChain
QueryInterface(a.i, b.i)
AddRef()
Release()
SetPrivateData(a.i, b.i, c.i)
SetPrivateDataInterface(a.i, b.i)
GetPrivateData(a.i, b.i, c.i)
GetParent(a.i, b.i)
GetDevice(a.i, b.i)
Present(a.i, b.i)
GetBuffer(a.i, b.i, c.i)
SetFullscreenState(a.i, b.i)
GetFullscreenState(a.i, b.i)
GetDesc(a.i)
ResizeBuffers(a.i, b.i, c.i, d.i, e.i)
ResizeTarget(a.i)
GetContainingOutput(a.i)
GetFrameStatistics(a.i)
GetLastPresentCount(a.i)
EndInterface
Interface ID3D11Device
QueryInterface(a.i, b.i)
AddRef()
Release()
CreateBuffer(a.i, b.i, c.i)
CreateTexture1D(a.i, b.i, c.i)
CreateTexture2D(a.i, b.i, c.i)
CreateTexture3D(a.i, b.i, c.i)
CreateShaderResourceView(a.i, b.i, c.i)
CreateUnorderedAccessView(a.i, b.i, c.i)
CreateRenderTargetView(a.i, b.i, c.i)
CreateDepthStencilView(a.i, b.i, c.i)
CreateInputLayout(a.i, b.i, c.i, d.i, e.i)
CreateVertexShader(a.i, b.i, c.i, d.i)
CreateGeometryShader(a.i, b.i, c.i, d.i)
CreateGeometryShaderWithStreamOutput(a.i, b.i, c.i, d.i, e.i, f.i, g.i, h.i, i.i, j.i, k.i)
CreatePixelShader(a.i, b.i, c.i, d.i)
CreateHullShader(a.i, b.i, c.i, d.i)
CreateDomainShader(a.i, b.i, c.i, d.i)
CreateComputeShader(a.i, b.i, c.i, d.i)
CreateClassLinkage(a.i)
CreateBlendState(a.i, b.i)
CreateDepthStencilState(a.i, b.i)
CreateRasterizerState(a.i, b.i)
CreateSamplerState(a.i, b.i)
CreateQuery(a.i, b.i)
CreatePredicate(a.i, b.i)
CreateCounter(a.i, b.i)
CreateDeferredContext(a.i, b.i)
OpenSharedResource(a.i, b.i, c.i)
CheckFormatSupport(a.i, b.i)
CheckMultisampleQualityLevels(a.i, b.i, c.i)
CheckCounterInfo(a.i)
CheckCounter(a.i, b.i, c.i, d.i, e.i, f.i, g.i, h.i, i.i)
CheckFeatureSupport(a.i, b.i, c.i)
GetPrivateData(a.i, b.i, c.i)
SetPrivateData(a.i, b.i, c.i)
SetPrivateDataInterface(a.i, b.i)
GetFeatureLevel()
GetCreationFlags()
GetDeviceRemovedReason()
GetImmediateContext(a.i)
SetExceptionMode(a.i)
GetExceptionMode()
EndInterface
Interface ID3D11DeviceChild Extends IUnknown
GetDevice(a.i)
GetPrivateData(a.i, b.i, c.i)
SetPrivateData(a.i, b.i, c.i)
SetPrivateDataInterface(a.i, b.i)
EndInterface
Interface ID3D11DeviceContext Extends ID3D11DeviceChild
VSSetConstantBuffers(a.i, b.i, c.i)
PSSetShaderResources(a.i, b.i, c.i)
PSSetShader(a.i, b.i, c.i)
PSSetSamplers(a.i, b.i, c.i)
VSSetShader(a.i, b.i, c.i)
DrawIndexed(a.i, b.i, c.i)
Draw(a.i, b.i)
Map(a.i, b.i, c.i, d.i, e.i)
Unmap(a.i, b.i)
PSSetConstantBuffers(a.i, b.i, c.i)
IASetInputLayout(a.i)
IASetVertexBuffers(a.i, b.i, c.i, d.i, e.i)
IASetIndexBuffer(a.i, b.i, c.i)
DrawIndexedInstanced(a.i, b.i, c.i, d.i, e.i)
DrawInstanced(a.i, b.i, c.i, d.i)
GSSetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
GSSetShader(a.i, b.i, c.i)
IASetPrimitiveTopology(a.i)
VSSetShaderResources(a.i, b.i, c.i, d.i, e.i)
VSSetSamplers(a.i, b.i, c.i, d.i, e.i)
Begin(a.i)
End(a.i)
GetData(a.i, b.i, c.i, d.i)
SetPredication(a.i, b.i)
GSSetShaderResources(a.i, b.i, c.i, d.i, e.i)
GSSetSamplers(a.i, b.i, c.i, d.i, e.i)
OMSetRenderTargets(a.i, b.i, c.i)
OMSetRenderTargetsAndUnorderedAccessViews(a.i, b.i, c.i, d.i, e.i, f.i, g.i, h.i)
OMSetBlendState(a.i, b.i, c.i)
OMSetDepthStencilState(a.i, b.i)
SOSetTargets(a.i, b.i, c.i, d.i)
DrawAuto()
DrawIndexedInstancedIndirect(a.i, b.i)
DrawInstancedIndirect(a.i, b.i)
Dispatch(a.i, b.i, c.i)
DispatchIndirect(a.i, b.i)
RSSetState(a.i)
RSSetViewports(a.i, b.i)
RSSetScissorRects(a.i, b.i, c.i)
CopySubresourceRegion(a.i, b.i, c.i, d.i, e.i, f.i, g.i, h.i)
CopyResource(a.i, b.i)
UpdateSubresource(a.i, b.i, c.i, d.i, e.i, f.i)
CopyStructureCount(a.i, b.i, c.i)
ClearRenderTargetView(a.i, b.i)
ClearUnorderedAccessViewUint(a.i, b.i)
ClearUnorderedAccessViewFloat(a.i, b.i)
ClearDepthStencilView(a.i, b.i, c.f, d.i)
GenerateMips(a.i)
SetResourceMinLOD(a.i, b.i)
GetResourceMinLOD(a.i)
ResolveSubresource(a.i, b.i, c.i, d.i, e.i)
ExecuteCommandList(a.i, b.i)
HSSetShaderResources(a.i, b.i, c.i, d.i, e.i)
HSSetShader(a.i, b.i, c.i)
HSSetSamplers(a.i, b.i, c.i, d.i, e.i)
HSSetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
DSSetShaderResources(a.i, b.i, c.i, d.i, e.i)
DSSetShader(a.i, b.i, c.i)
DSSetSamplers(a.i, b.i, c.i, d.i, e.i)
DSSetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
CSSetShaderResources(a.i, b.i, c.i, d.i, e.i)
CSSetUnorderedAccessViews(a.i, b.i, c.i, d.i, e.i, f.i)
CSSetShader(a.i, b.i, c.i)
CSSetSamplers(a.i, b.i, c.i, d.i, e.i)
CSSetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
VSGetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
PSGetShaderResources(a.i, b.i, c.i, d.i, e.i)
PSGetShader(a.i, b.i, c.i)
PSGetSamplers(a.i, b.i, c.i, d.i, e.i)
VSGetShader(a.i, b.i, c.i)
PSGetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
IAGetInputLayout(a.i)
IAGetVertexBuffers(a.i, b.i, c.i, d.i, e.i, f.i, g.i)
IAGetIndexBuffer(a.i, b.i, c.i)
GSGetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
GSGetShader(a.i, b.i, c.i)
IAGetPrimitiveTopology(a.i)
VSGetShaderResources(a.i, b.i, c.i, d.i, e.i)
VSGetSamplers(a.i, b.i, c.i, d.i, e.i)
GetPredication(a.i, b.i)
GSGetShaderResources(a.i, b.i, c.i, d.i, e.i)
GSGetSamplers(a.i, b.i, c.i, d.i, e.i)
OMGetRenderTargets(a.i, b.i, c.i, d.i)
OMGetRenderTargetsAndUnorderedAccessViews(a.i, b.i, c.i, d.i, e.i, f.i, g.i, h.i, i.i)
OMGetBlendState(a.i, b.i, c.i)
OMGetDepthStencilState(a.i, b.i)
SOGetTargets(a.i, b.i, c.i)
RSGetState(a.i)
RSGetViewports(a.i, b.i)
RSGetScissorRects(a.i, b.i)
HSGetShaderResources(a.i, b.i, c.i, d.i, e.i)
HSGetShader(a.i, b.i, c.i)
HSGetSamplers(a.i, b.i, c.i, d.i, e.i)
HSGetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
DSGetShaderResources(a.i, b.i, c.i, d.i, e.i)
DSGetShader(a.i, b.i, c.i)
DSGetSamplers(a.i, b.i, c.i, d.i, e.i)
DSGetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
CSGetShaderResources(a.i, b.i, c.i, d.i, e.i)
CSGetUnorderedAccessViews(a.i, b.i, c.i, d.i, e.i)
CSGetShader(a.i, b.i, c.i)
CSGetSamplers(a.i, b.i, c.i, d.i, e.i)
CSGetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
ClearState()
Flush()
GetType()
GetContextFlags()
FinishCommandList(a.i, b.i)
EndInterface
Interface ID3D11RenderTargetView
QueryInterface(a.i, b.i)
AddRef()
Release()
GetDevice(a.i)
GetPrivateData(a.i, b.i, c.i)
SetPrivateData(a.i, b.i, c.i)
SetPrivateDataInterface(a.i, b.i)
GetResource(a.i)
GetDesc(a.i)
EndInterface
Interface ID3D11DepthStencilView
QueryInterface(a.i, b.i)
AddRef()
Release()
GetDevice(a.i)
GetPrivateData(a.i, b.i, c.i)
SetPrivateData(a.i, b.i, c.i)
SetPrivateDataInterface(a.i, b.i)
GetResource(a.i)
GetDesc(a.i)
EndInterface
#D3D11_CLEAR_DEPTH = $1
#D3D11_CLEAR_STENCIL = $2
;- D3DXCOLOR
Structure D3DXCOLOR
r.f
g.f
b.f
a.f
EndStructure
If Not InitSprite()
MessageRequester("Error", "Can't open screen & sprite environment!", 0)
End
EndIf
If OpenWindow(0, 0, 0, 160, 160, "A screen in a window...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0), 0, 0, 160, 160)
CreateSprite(0, 20, 20)
If StartDrawing(SpriteOutput(0))
Box(0, 0, 20, 20, RGB(255, 0, 155))
Box(5, 5, 10, 10, RGB(155, 0, 255))
StopDrawing()
EndIf
Else
MessageRequester("Error", "Can't open windowed screen!", 0)
End
EndIf
EndIf
direction = 2
Procedure GetD3D11SwapChain(*IDXSwapChain)
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
!extrn _PB_Screen_SwapChain
!MOV EAX,DWord [_PB_Screen_SwapChain]
!MOV DWord [p_IDXSwapChain],EAX
CompilerElse
!extrn PB_Screen_SwapChain
!MOV RAX,QWord [PB_Screen_SwapChain]
!MOV QWord [p_IDXSwapChain],RAX
CompilerEndIf
EndProcedure
Procedure GetD3D11Device(*D3D11Device)
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
!extrn _PB_Screen_Device
!MOV EAX,DWord [_PB_Screen_Device]
!MOV DWord [p_D3D11Device],EAX
CompilerElse
!extrn PB_Screen_Device
!MOV RAX,QWord [PB_Screen_Device]
!MOV QWord [p_D3D11Device],RAX
CompilerEndIf
EndProcedure
Procedure GetD3D11DeviceContext(*D3D11DeviceContext)
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
!extrn _PB_Screen_DeviceContext
!MOV EAX,DWord [_PB_Screen_DeviceContext]
!MOV DWord [p_D3D11DeviceContext],EAX
CompilerElse
!extrn PB_Screen_DeviceContext
!MOV RAX,QWord [PB_Screen_DeviceContext]
!MOV QWord [p_D3D11DeviceContext],RAX
CompilerEndIf
EndProcedure
Procedure GetD3D11RenderTargetView(*D3D11RenderTargetView)
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
!extrn _PB_Screen_RenderTargetView
!MOV EAX,DWord [_PB_Screen_RenderTargetView]
!MOV DWord [p_D3D11RenderTargetView],EAX
CompilerElse
!extrn PB_Screen_RenderTargetView
!MOV RAX,QWord [PB_Screen_RenderTargetView]
!MOV QWord [p_D3D11RenderTargetView],RAX
CompilerEndIf
EndProcedure
Procedure GetD3D11DepthStencilView(*D3D11DepthStencilView)
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
!extrn _PB_Screen_DepthStencilView
!MOV EAX,DWord [_PB_Screen_DepthStencilView]
!MOV DWord [p_D3D11DepthStencilView],EAX
CompilerElse
!extrn PB_Screen_DepthStencilView
!MOV RAX,QWord [PB_Screen_DepthStencilView]
!MOV QWord [p_D3D11DepthStencilView],RAX
CompilerEndIf
EndProcedure
Define *IDXSwapChain.IDXGISwapChain
Define *D3D11Device.ID3D11Device
Define *D3D11DeviceContext.ID3D11DeviceContext
Define *D3D11RenderTargetView.ID3D11RenderTargetView
Define *D3D11DepthStencilView.ID3D11DepthStencilView
GetD3D11SwapChain(*IDXSwapChain)
GetD3D11Device(*D3D11Device)
GetD3D11DeviceContext(*D3D11DeviceContext)
GetD3D11RenderTargetView(*D3D11RenderTargetView)
GetD3D11DepthStencilView(*D3D11DepthStencilView)
Define Color.D3DXCOLOR
Color\r = 1
Color\g = 148 / 255
Color\b = 81 / 255
Color\a = 0
Repeat
Event = WindowEvent()
*IDXSwapChain\Present(1, 0)
*D3D11DeviceContext\ClearRenderTargetView(*D3D11RenderTargetView, Color)
*D3D11DeviceContext\ClearDepthStencilView(*D3D11DepthStencilView, #D3D11_CLEAR_DEPTH | #D3D11_CLEAR_STENCIL, 1.0, 0)
Select Event
Case #PB_Event_CloseWindow
End
EndSelect
DisplaySprite(0, x, x)
x + direction
If x > 140 : direction = -2 : EndIf
If x < 0 : direction = 2 : EndIf
Delay(1)
Until Event = #PB_Event_CloseWindow