AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DirectX 12 Header

Ein Thema von SonnyBoyPro · begonnen am 7. Jun 2015 · letzter Beitrag vom 21. Dez 2017
 
SonnyBoyPro

Registriert seit: 9. Mai 2007
68 Beiträge
 
#7

AW: DirectX 12 Header

  Alt 9. Jun 2015, 11:57
bin gerade (negativ) fasziniert....

hab probiert bei dem ID2D1Bitmap die Deklarationen zu ändern

Delphi-Quellcode:
ID2D1Bitmap = interface(ID2D1Image)
        ['{a2296057-ea42-4099-983b-539fb6505426}']
        function GetSize(): TD2D1_SIZE_F; stdcall;
        function GetPixelSize(): TD2D1_SIZE_U; stdcall;
        function GetPixelFormat(): TD2D1_PIXEL_FORMAT; stdcall;
        procedure GetDpi(out dpiX: single; out dpiY: single); stdcall;
// function CopyFromBitmap( destPoint: PD2D1_POINT_2U; bitmap: ID2D1Bitmap; srcRect: PD2D1_RECT_U): HResult; stdcall; // <- funkt
        function CopyFromBitmap(const destPoint: PD2D1_POINT_2U; bitmap: ID2D1Bitmap; const srcRect: PD2D1_RECT_U): HResult; stdcall;// <- funkt
// function CopyFromBitmap(const destPoint: TD2D1_POINT_2U; bitmap: ID2D1Bitmap; const srcRect: TD2D1_RECT_U): HResult; stdcall;// <- funkt
// function CopyFromBitmap(destPoint: TD2D1_POINT_2U; bitmap: ID2D1Bitmap; srcRect: TD2D1_RECT_U): HResult; stdcall; <- das crasht, weil ja kein Pointer übergeben wird
        function CopyFromRenderTarget(const destPoint: TD2D1_POINT_2U; renderTarget: ID2D1RenderTarget; const srcRect: TD2D1_RECT_U): HResult; stdcall;
        function CopyFromMemory(dstRect: PD2D1_RECT_U; srcData: Pointer; pitch: UINT32): HResult; stdcall;
    end;
Ergebis: alle 3 Varianten funktionieren (nur die 4te nicht in der das Record direkt übergeben wird, logo)


hab mal so probiert zu verwenden

Delphi-Quellcode:
 procedure TSkin.LoadSkin(DXDevice: TDXDevice; AFilename: WideString);
var
  dp:TD2D1_POINT_2U;
  ar: TD2D1_RECT_U;
  hr: HResult;

begin
    if FDLLHandle <> 0 then
        FreeLibrary(FDLLHandle);

    FDLLHandle := LoadLibraryW(pWideChar(AFilename));

    D2DFunctions.LoadBitmapFromResource(DXDevice, FDLLHandle, 'Button', 56, 56, FButton);
    D2DFunctions.LoadBitmapFromResource(DXDevice, FDLLHandle, 'InnerLabel', 54, 55, FInnerLabel);
    D2DFunctions.LoadBitmapFromResource(DXDevice, FDLLHandle, 'InnerLabelSelected', 54, 55, FInnerLabelSelected);

    D2DFunctions.LoadBitmapFromResource(DXDevice, FDLLHandle, 'ButtonSelected', 56, 56, FButtonSelected);
    D2DFunctions.LoadBitmapFromResource(DXDevice, FDLLHandle, 'Background', 1920, 1080, FBackground);
    D2DFunctions.LoadBitmapFromResource(DXDevice, FDLLHandle, 'ImageButton', 56, 56, FImageButton);
    D2DFunctions.LoadBitmapFromResource(DXDevice, FDLLHandle, 'ImageButtonSelected', 56, 56, FImageButtonSelected);

    D2DFunctions.LoadBitmapFromResource(DXDevice, FDLLHandle, 'CheckboxChecked', 18, 18, FCheckBoxChecked);
    D2DFunctions.LoadBitmapFromResource(DXDevice, FDLLHandle, 'CheckboxUnchecked', 18, 18, FCheckBoxUnChecked);

    dp.x:=12;
    dp.y:=2;
    ar.left:=0;
    ar.top:=0;
    ar.right:=50;
    ar.bottom:=50;
    hr:=FButtonSelected.CopyFromBitmap(@dp,FButton,@ar);
// hr:=FButtonSelected.CopyFromBitmap(dp,FButton,ar);
    if hr=0 then OutputDebugString('suuüa');


end;
Aufruf von CopyFromBitmap je nach Deklartion im Header.
Ergebnis siehe Anhang.

Unterscheiden sich hier Delphi und FPC wirklich so stark?
Ich hab ja die Header unter FPC in Verwendung. Z.B. gingen bei den DX10 Headern von JSB keine Effects weil das keine "echten" IUnknown interfaces sind, sondern welche denen die Referenzierung fehlt, JSB hat die mit class und die funktionen als virtual abstract deklariert.
Das geht unter FPC nicht, dafür gibts dort das CORBA interface, das hat keine Referenzzählung.

Welches Betriebssystem verwendest Du? 32 oder 64bit?
Angehängte Grafiken
Dateityp: png Bitmap_Copy_D2D1.PNG (80,5 KB, 45x aufgerufen)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz