Recent Posts

Pages: 1 ... 4 5 [6] 7 8 ... 10
51
The concept / ObjReader Viewer 3.00.07 (C++ VS2022)
« Last post by Patrice Terrier on July 04, 2023, 07:21:11 pm »
This version has been converted to VS2022, using TCLIB.dll to produce a small 39 Kb ORV64.exe binary.

It uses GDImage64.dll, WinLIFT64.dll, Bass.dll, and ORDLL64.dll that is a small subset of the ObjReader OpenGL 3D engine.

About:
ORDLL64 can be used with any 64-bit language to render wavefront .obj 3D models, using the specific ObjReader materials.
You can select a project from the combobox,
or using drag and drop to play any model downloaded from the 3D collection
(Explorer drag and drop can also be used to play audio files)

The ORDLL64.dll API is using this limited set of functions
Code: [Select]
OR_CreateWindow(IN DWORD dwExStyle, IN HWND hParent, IN DWORD dwStyle, IN long x, IN long y, IN long w, IN long h, IN HMENU CtrlID);
OR_DetectGPU();
OR_GPUinfo();
OR_About();
OR_ViewReset();
OR_GetAudioVolume();
OR_SetAudioVolume(IN long nVolume);
OR_ProcessCommandLine(IN WCHAR* lpCmdLine);
OR_Vertices();
OR_Triangles();
OR_Indices();
OR_Meshes();
OR_Materials();
OR_ObjSize();
OR_LoadTime();
OR_Version();
OR_TimerEnable(IN BOOL enable);
OR_SetSwapInterval(IN BOOL bUseInterval);
OR_ObjFileName();
OR_GPU();
OR_CPU();
OR_GetAniTick();
52
The concept / Tutor_08 (C++ VS2022 GDImage64 tutorial)
« Last post by Patrice Terrier on June 27, 2023, 06:13:16 pm »
Eighth post of a series, translated from the "WinDev and PowerBASIC",
to explain the use of GDImage64 in procedural* programming mode with Visual Studio 2022.

About Tutor_08
This tutor introduces the use of multiple overlapping transparent layers, working in DWM composited mode.

The "aero_glass.png" used at the top of the z-order is displayed in "ZS_INACTIVE" mode,
that means it is disabled, however, all WM_ messages are passed to the immediate underlaying sprites.

Even the layer shown at the bottom of the z-order is using variable opacity,
which makes it possible to discern the windows desktop in the background.

The fish animation is using 4 bitmaps, each bitmap being composed of multi frames.
See the DetectMultiframe() function.

Last but not least,
the size of the standalone binary EXE is only 13 Kb.


   
* procedural programming mode, is based on direct use of the FLAT API (Windows SDK) that is the core meat of the OS.
53
The concept / WinLIFT DreamScene version 2.00 (C++ VS 2022)
« Last post by Patrice Terrier on June 26, 2023, 04:40:34 pm »
This is a rather complex project using several technologies.
  • It is a compound application, mixing 64 and 32-bit code,
  • WM_COPYDATA, is used to communicate between multiple binary components.
  • The main application is 64-bit, while the companion ZWP (ZAP Window Plugin) is 32-bit.
  • ZWP is the interface between the high level code, and the low level 32-bit OpenGL visual plugins.
  • ZWP is also in charge of processing the audio signal.
  • Using RCDATA to create the 32-bit audio DLL (Bass.dll) directly in memory.

DWM compositing

Both WinLIFT and GDImage are able to work in transparent composited mode, using variable opacity.
This is quite obvious when you start the application, before playing audio.

You can move the main window around, however WinLIFT always keep it inside of the WinDows desktop client size.
It does the same when you popup the (info) "About" dialog box, that is constraint inside of the main window client size.
The winLIFT modal info dialog box, is using DDW (Dim Disabled Window) with grayed transparent background until you close it.

About "Let her dance for you"
The central PNG animation is synchronized on the audio signal tempo while playing music.
You can select an audio file from the dedicated combo, or using drag and drop from the Explorer.
While playing music, you can drag the seeker to move forward or backward.
The small rotating gauge located at the bottom right edge allows you to adjust the audio level.
You can change of OpenGL visual plugin, by selecting a new name from the specific combo.
While playing, you can move the cursor to the center of the GDImage control to pause/play music.

WinLIFT controls
All controls are using anchor properties.
The gauges, and the vertical track bar (zoom), can be restored to their default values using a right mouse click.
The Transparent check box, enable or disable full transparency.
The PLAY check box, turn music on/off

54
The concept / Re: Tutor_01 (C++ VS2022 GDImage64 tutorial)
« Last post by Patrice Terrier on June 24, 2023, 09:47:35 am »
TCLIB.dll is an acronym fot Tiny C Library, it is written in pure C.
It is a replacement for the MS C Runtime to reduce program size, without using a compressor.

More about this, in Frederick Harris's section.
http://www.objreader.com/index.php?topic=369.msg6200#msg6200
55
The concept / Re: Tutor_01 (C++ VS2022 GDImage64 tutorial)
« Last post by Shao Voon Wong on June 24, 2023, 07:19:56 am »
I see TCLib.LIB in every tutorial project folder. What is it used for? Where is its header file for calling its functions?
56
The concept / Tutor_07 (C++ VS2022 GDImage64 tutorial)
« Last post by Patrice Terrier on June 22, 2023, 10:28:20 am »
Seventh post of a series, translated from the "PowerBASIC tutorial",
to explain the use of GDImage64 in procedural* programming mode with Visual Studio 2022.

About Tutor_07
This tutor introduces the use of PRIVATE FONT to create sprite images,
and more specifically True Type Font dingbat pictograms to create them.

Private fonts do not need to be registered in Windows, just put them in your resource folder,
then you ensure that the code using them will always look the same, whatever the computer being used.

There are several dingbats in the resource folder, try to use Gears.ttf to create rotating sprites.
Pictograms are also very handy to be used as markers for the purpose of image annotation.

Last but not least,
the size of the standalone binary EXE is only 14 Kb.


   
* procedural programming mode, is based on direct use of the FLAT API (Windows SDK) that is the core meat of the OS.
57
The concept / Tutor_06 "Carousel" (C++ VS2022 GDImage64 tutorial)
« Last post by Patrice Terrier on June 21, 2023, 07:36:26 am »
Sixth post of a series, translated from the "WinDev tutorial",
to explain the use of GDImage64 in procedural* programming mode with Visual Studio 2022.

About Tutor_06
This tutor introduces the use of sprite graphic controls to create a CAROUSEL.

To look good, the application is using WinLIFT to skin the project with two lines of code.
See at the end of the CreateControls() procedure

    // Here is the WinLIFT magic
    if (skInitEngine(L"Tutor.sks", NULL)) {
        if (skSkinWindow(hParent, L"  Dock  |  Undock  |  Minimize  |  Maximize  |  Restore  |  Close  ")) {
            // If hParent has been skinned with success,
            // then update its minimum track size using WinLIFT metrics.
            RECT r; GetWindowRect(hParent, &r);
            MinTrackSizeW(rWidth(r));
            MinTrackSizeH(rHeight(r));
        }
    }


More about this in the WinLIFT section.

This project is using GDImage64 version 7.12, if ever you want to load the sprites from resource rather than disk file.

Last but not least,
the size of the standalone binary EXE is only 19 Kb.


   
* procedural programming mode, is based on direct use of the FLAT API (Windows SDK) that is the core meat of the OS.
58
The concept / Re: Tutor_02 (C++ VS2022 GDImage64 tutorial)
« Last post by Patrice Terrier on June 20, 2023, 07:21:50 pm »
59
The concept / Version 7.12
« Last post by Patrice Terrier on June 20, 2023, 07:20:08 pm »
The new GDImage64.dll version 7.12 has been attached to the first post of this thread.

This version is now using the macro MAKEINTRESOURCE to load bitmap or image from resource.

The declaration has not changed (it is still using a WCHAR*),
however here is now the new syntax to use, to please Microsoft.

hBitmap = ZI_LoadFromResource(NULL, MAKEINTRESOURCE(IDB_PNG1));
or
hBitmap = ZI_LoadBitmap(MAKEINTRESOURCE(IDB_PNG1));
 
60
The concept / Re: Tutor_02 (C++ VS2022 GDImage64 tutorial)
« Last post by Patrice Terrier on June 20, 2023, 02:07:11 pm »
I shall give it a try...
Pages: 1 ... 4 5 [6] 7 8 ... 10