Moving To Discord:

Hello everyone, due to bugs with the forum software that I do not have time to care about, I am going to be shutting down these forums and moving my discussions to Discord instead. I will eventually keep releases here on the site but the forums will be removed sooner or later. I encourage people to join my personal Discord if you have questions, if you are looking for any of my projects, etc.

Registration Code (Part 1): w%kQ6
Registration Code (Part 2): b<#$1[*(cw~
In order to register on this forum, you must use the codes above. Combine them into one code (copy paste).

patchLib v3

Programming topics that relate to the C/C++ languages.
User avatar
Site Admin
Posts: 450
Joined: Sun Jan 04, 2015 11:23 pm

patchLib v3

Post by atom0s » Tue Jan 06, 2015 9:01 pm

patchLibv3 is finally here! After two years of paused development I brought the project back to life in the recent months and wanted to give it another go. patchLibv3 is another full rewrite of the project. I decided to rewrite from scratch again to better make use of new things I've learned as well as better incorporate new features into the project. Updating v2 would have lead into major rewrites of almost every part of the project so starting over was the better option.

The main new feature of patchLib v3 is the support for standard Win32 controls.

patchLib v3 Change Log
Overall Project Changes
  • Change: patchLibv3 is fully rewritten from the ground up.
  • Change: CEngine has been renamed to CPatchLib and is now a singleton.
  • Removed: CBaseWindow is removed. (Condensed into CWindow.)
  • Removed: CFrame is removed. (Condensed into CPatchLib.)
  • Removed: CCommand and CCommandHandler are both removed. (Condensed into CWindow.)
  • Change: Usage of Visual Studio 2010.
  • Change: Usage of Boost template library.
  • Change: Usage of Lua scripting engine. (Optional; not included in first release.)
  • Fixed: Fixed .lib inclusion problems.
  • Added: Win32 Control drawing support.
Class-Specific Changes
  • Main Engine Changes (CPatchLib)
    • Change: Class friendship fully removed and no longer required.
    • Change: Mouse and Icon are now handled by CWindow.
    • Change: Misc functions are moved to separate header. (imghelper.h)
    • Added: Frame variables are now embedded into main engine class.
    • Added: Various property exposure for more customization.
  • CWindow Changes
    • Change: CBaseWindow is now embedded into CWindow.
    • Change: CWindow is now responible for cursor and icon.
    • Change: CWindow has inherited CCommand / CCommandHandler responsibilities.
    • Change: CWindow now has Draw( .. ) and Update( .. ) to handle all controls at once.
    • Change: Object containers are now contained in a single vector.
    • Added: Various property exposure for more customization.
  • CButton, CLabel, CScroller, CUrl Changes
    • Change: All controls now inherit CChild base class.
    • Change: CButton now handles position and sizing in a single rect.
    • Change: CLabel, CScroller, CUrl no longer create separate copies of the font object.
    • Added: CScroller now has more properties exposed for better control / customization.
patchLib v3 Credits and Thanks
patchLib Lead Developer
- atom0s

patchLib External Libraries
  • Boost Template Library [Boost]
  • alphablend.lib (bitRAKE, ufo-pu55y, HVC, atom0s)
  • pngLib (c) 2002 Thomas Bleeker []
  • tinyXML (c) 2000-2006 Lee Thomason []
  • uFMOD (c) 2005-2008 Asterix and Quantum []
  • Lua (c) 1994-2008, PUC-Rio []
  • Luabind (c) 2003 Daniel Wallin and Arvid Norberg []
patchLib External Code Usage / Snippets
  • Wine Emulation Project []
    • PremultipledAlpha() function snippet. (imghelper.h)
  • bobbysing
    • Framework design based on his DirectX Gui Library design.
  • ufo-pu55y
    • alphaBlend.lib - Majority of the code in this library is from him.
    • Parts of drawing code is based on some of his MASM source.
    • Graphics for the Patcher example are from his uPPP project.
  • HVC
    • Fixed up alphaBlend.lib to properly compile into a lib.
  • bitRAKE
    • Parts of alphaBlend.lib code (mainly MMX code) is by him.
  • Renkokuken / Sakuri
    • Window message override was developed for a project him and I worked on.
  • D.K. Wang
    • Article on CodeProject explaining how to use WM_PRINT to draw controls on layered windows.
    • Usage of Gdiplus for drawing the overall project.
  • Joe Woodbury
    • CodeProject article covering how to load images from resources into Gdiplus objects. (imghelper.h)

patchLib Suggestions, Bugfixes, Etc.
  • Stephenteh {RES}
    • Various suggestions for patchLib v2.
patchLib Support, Testing, Etc.
  • Absolution [GameDeception]
    • Hosted the previous patchLib site free of charge.
  • Team {RES} [Team {RES}]
    • Cracking team; home of a lot of talented people.
  • Team SnD [Team SnD]
    • Cracking team; home of a lot of talented people.
    • Home of ufo-pu55y; uPPP creator.
For the lack of caring, I didn't write documentation for this version. Things should be fairly straight forward on how to use the library. There are three example projects included in the release, and I will probably release some more later on including some custom controls and such. You can use the forums over at patchLib's site (or here) if you have any questions or issues.

Launcher Examples
Image Image

Patcher Examples
Image Image

patchLib v3 Examples (Win32 Controls)
Image Image

~ Enjoy.
(1.37 MiB) Downloaded 430 times
(1.59 MiB) Downloaded 515 times
Need a great web host? Check out:

Donations can be made via Paypal:

Who is online

Users browsing this forum: No registered users and 1 guest