Showing preview only (1,517K chars total). Download the full file or copy to clipboard to get everything.
Repository: Wando1423/Antario
Branch: master
Commit: 732db743749f
Files: 153
Total size: 1.4 MB
Directory structure:
gitextract_s_lvljwb/
├── .gitignore
├── Antario/
│ ├── EventListener.h
│ ├── Features/
│ │ ├── ESP.cpp
│ │ ├── ESP.h
│ │ ├── EnginePrediction.cpp
│ │ ├── EnginePrediction.h
│ │ ├── Features.h
│ │ └── Misc.h
│ ├── GUI/
│ │ ├── GUI.cpp
│ │ └── GUI.h
│ ├── Hooks.cpp
│ ├── Hooks.h
│ ├── LIB/
│ │ └── freetype/
│ │ ├── freetype/
│ │ │ ├── config/
│ │ │ │ ├── ftconfig.h
│ │ │ │ ├── ftheader.h
│ │ │ │ ├── ftmodule.h
│ │ │ │ ├── ftoption.h
│ │ │ │ └── ftstdlib.h
│ │ │ ├── freetype.h
│ │ │ ├── ftadvanc.h
│ │ │ ├── ftbbox.h
│ │ │ ├── ftbdf.h
│ │ │ ├── ftbitmap.h
│ │ │ ├── ftbzip2.h
│ │ │ ├── ftcache.h
│ │ │ ├── ftchapters.h
│ │ │ ├── ftcid.h
│ │ │ ├── ftcolor.h
│ │ │ ├── ftdriver.h
│ │ │ ├── fterrdef.h
│ │ │ ├── fterrors.h
│ │ │ ├── ftfntfmt.h
│ │ │ ├── ftgasp.h
│ │ │ ├── ftglyph.h
│ │ │ ├── ftgxval.h
│ │ │ ├── ftgzip.h
│ │ │ ├── ftimage.h
│ │ │ ├── ftincrem.h
│ │ │ ├── ftlcdfil.h
│ │ │ ├── ftlist.h
│ │ │ ├── ftlzw.h
│ │ │ ├── ftmac.h
│ │ │ ├── ftmm.h
│ │ │ ├── ftmodapi.h
│ │ │ ├── ftmoderr.h
│ │ │ ├── ftotval.h
│ │ │ ├── ftoutln.h
│ │ │ ├── ftparams.h
│ │ │ ├── ftpfr.h
│ │ │ ├── ftrender.h
│ │ │ ├── ftsizes.h
│ │ │ ├── ftsnames.h
│ │ │ ├── ftstroke.h
│ │ │ ├── ftsynth.h
│ │ │ ├── ftsystem.h
│ │ │ ├── fttrigon.h
│ │ │ ├── fttypes.h
│ │ │ ├── ftwinfnt.h
│ │ │ ├── internal/
│ │ │ │ ├── autohint.h
│ │ │ │ ├── cffotypes.h
│ │ │ │ ├── cfftypes.h
│ │ │ │ ├── ftcalc.h
│ │ │ │ ├── ftdebug.h
│ │ │ │ ├── ftdrv.h
│ │ │ │ ├── ftgloadr.h
│ │ │ │ ├── fthash.h
│ │ │ │ ├── ftmemory.h
│ │ │ │ ├── ftobjs.h
│ │ │ │ ├── ftpsprop.h
│ │ │ │ ├── ftrfork.h
│ │ │ │ ├── ftserv.h
│ │ │ │ ├── ftstream.h
│ │ │ │ ├── fttrace.h
│ │ │ │ ├── ftvalid.h
│ │ │ │ ├── internal.h
│ │ │ │ ├── psaux.h
│ │ │ │ ├── pshints.h
│ │ │ │ ├── services/
│ │ │ │ │ ├── svbdf.h
│ │ │ │ │ ├── svcfftl.h
│ │ │ │ │ ├── svcid.h
│ │ │ │ │ ├── svfntfmt.h
│ │ │ │ │ ├── svgldict.h
│ │ │ │ │ ├── svgxval.h
│ │ │ │ │ ├── svkern.h
│ │ │ │ │ ├── svmetric.h
│ │ │ │ │ ├── svmm.h
│ │ │ │ │ ├── svotval.h
│ │ │ │ │ ├── svpfr.h
│ │ │ │ │ ├── svpostnm.h
│ │ │ │ │ ├── svprop.h
│ │ │ │ │ ├── svpscmap.h
│ │ │ │ │ ├── svpsinfo.h
│ │ │ │ │ ├── svsfnt.h
│ │ │ │ │ ├── svttcmap.h
│ │ │ │ │ ├── svtteng.h
│ │ │ │ │ ├── svttglyf.h
│ │ │ │ │ └── svwinfnt.h
│ │ │ │ ├── sfnt.h
│ │ │ │ ├── t1types.h
│ │ │ │ └── tttypes.h
│ │ │ ├── t1tables.h
│ │ │ ├── ttnameid.h
│ │ │ ├── tttables.h
│ │ │ └── tttags.h
│ │ ├── freetype.lib
│ │ └── ft2build.h
│ ├── Menu.cpp
│ ├── SDK/
│ │ ├── CEntity.h
│ │ ├── CGlobalVarsBase.h
│ │ ├── CHandle.h
│ │ ├── CInput.h
│ │ ├── CPrediction.h
│ │ ├── ClientClass.h
│ │ ├── Definitions.h
│ │ ├── IBaseClientDll.h
│ │ ├── IClientEntity.h
│ │ ├── IClientEntityList.h
│ │ ├── IClientMode.h
│ │ ├── IClientNetworkable.h
│ │ ├── IClientRenderable.h
│ │ ├── IClientThinkable.h
│ │ ├── IClientUnknown.h
│ │ ├── IGameEvent.h
│ │ ├── ISurface.h
│ │ ├── IVEngineClient.h
│ │ ├── KeyValues.h
│ │ ├── PlayerInfo.h
│ │ ├── Recv.h
│ │ ├── VMatrix.h
│ │ └── Vector.h
│ ├── Settings.cpp
│ ├── Settings.h
│ ├── Utils/
│ │ ├── Color.h
│ │ ├── DrawManager.cpp
│ │ ├── DrawManager.h
│ │ ├── Font.cpp
│ │ ├── Font.h
│ │ ├── GlobalVars.cpp
│ │ ├── GlobalVars.h
│ │ ├── Interfaces.cpp
│ │ ├── Interfaces.h
│ │ ├── NetvarManager.cpp
│ │ ├── NetvarManager.h
│ │ ├── SPoint.h
│ │ ├── SRect.h
│ │ └── Utils.h
│ └── dllmain.cpp
├── Antario.sln
├── Antario.sln.DotSettings.user
├── Antario.vcxproj
├── Antario.vcxproj.filters
├── Antario.vcxproj.user
├── LICENSE
└── README.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
!freetype.lib
# Executables
*.dll
!freetype.dll
*.exe
*.out
*.app
*.enc
# MSVC binary files
*.db
*.ipch
*.suo
*.tlog
*.idb
*.pdb
*.ilk
*.bsc
*.sbr
*.log
*.opendb
*.iobj
*.ipdb
*.xml
*.lastcodeanalysissucceeded
*.sqlite-journal
*.sqlite
*.json
================================================
FILE: Antario/EventListener.h
================================================
#pragma once
#include <vector>
#include "SDK\IGameEvent.h"
class EventListener : public IGameEventListener2
{
public:
EventListener(std::vector<const char*> events)
{
for (auto& it : events)
g_pEventManager->AddListener(this, it, false);
}
~EventListener()
{
g_pEventManager->RemoveListener(this);
}
void FireGameEvent(IGameEvent* event) override
{
// call functions here
}
int GetEventDebugID() override
{
return EVENT_DEBUG_ID_INIT;
}
};
================================================
FILE: Antario/Features/ESP.cpp
================================================
#include "ESP.h"
#include "..\Settings.h"
#include "..\Utils\Utils.h"
#include "..\SDK\IVEngineClient.h"
#include "..\SDK\PlayerInfo.h"
ESP g_ESP;
void ESP::RenderBox(C_BaseEntity* pEnt)
{
Vector vecScreenOrigin, vecOrigin = pEnt->GetRenderOrigin();
if (!Utils::WorldToScreen(vecOrigin, vecScreenOrigin))
return;
Vector vecScreenBottom, vecBottom = vecOrigin;
vecBottom.z += (pEnt->GetFlags() & FL_DUCKING) ? 54.f : 72.f;
if (!Utils::WorldToScreen(vecBottom, vecScreenBottom))
return;
const auto sx = int(std::roundf(vecScreenOrigin.x)),
sy = int(std::roundf(vecScreenOrigin.y)),
h = int(std::roundf(vecScreenBottom.y - vecScreenOrigin.y)),
w = int(std::roundf(h * 0.25f));
/* Draw rect around the entity */
g_Render.Rect(sx - w, sy, sx + w, sy + h, (pEnt->GetTeam() == localTeam) ? teamColor : enemyColor);
/* Draw rect outline */
g_Render.Rect(sx - w - 1, sy - 1, sx + w + 1, sy + h + 1, Color::Black());
g_Render.Rect(sx - w + 1, sy + 1, sx + w - 1, sy + h - 1, Color::Black());
}
void ESP::RenderName(C_BaseEntity* pEnt, int iterator)
{
Vector vecScreenOrigin,
vecOrigin = pEnt->GetRenderOrigin();
if (!Utils::WorldToScreen(vecOrigin, vecScreenOrigin))
return;
Vector vecScreenBottom, vecBottom = vecOrigin;
vecBottom.z += (pEnt->GetFlags() & FL_DUCKING) ? 54.f : 72.f;
if (!Utils::WorldToScreen(vecBottom, vecScreenBottom))
return;
PlayerInfo_t pInfo;
g_pEngine->GetPlayerInfo(iterator, &pInfo);
const auto sx = int(std::roundf(vecScreenOrigin.x)),
sy = int(std::roundf(vecScreenOrigin.y)),
h = int(std::roundf(vecScreenBottom.y - vecScreenOrigin.y));
g_Render.String(sx, sy + h - 16, FONT_CENTERED_X | FONT_DROPSHADOW,
(localTeam == pEnt->GetTeam()) ? teamColor : enemyColor,
g_Fonts.vecFonts[FONT_TAHOMA_10], pInfo.szName);
}
void ESP::RenderWeaponName(C_BaseEntity* pEnt)
{
Vector vecScreenOrigin, vecOrigin = pEnt->GetRenderOrigin();
if (!Utils::WorldToScreen(vecOrigin, vecScreenOrigin))
return;
auto weapon = pEnt->GetActiveWeapon();
if (!weapon)
return;
auto strWeaponName = weapon->GetName();
/* Remove "weapon_" prefix */
strWeaponName.erase(0, 7);
/* All uppercase */
std::transform(strWeaponName.begin(), strWeaponName.end(), strWeaponName.begin(), ::toupper);
g_Render.String(int(vecScreenOrigin.x), int(vecScreenOrigin.y), FONT_CENTERED_X | FONT_DROPSHADOW,
(localTeam == pEnt->GetTeam()) ? teamColor : enemyColor,
g_Fonts.vecFonts[FONT_TAHOMA_10], strWeaponName.c_str());
}
void ESP::Render()
{
if (!g::pLocalEntity || !g_pEngine->IsInGame())
return;
localTeam = g::pLocalEntity->GetTeam();
for (int it = 1; it <= g_pEngine->GetMaxClients(); ++it)
{
C_BaseEntity* pPlayerEntity = g_pEntityList->GetClientEntity(it);
if (!pPlayerEntity
|| pPlayerEntity == g::pLocalEntity
|| pPlayerEntity->IsDormant()
|| !pPlayerEntity->IsAlive())
continue;
if (g_Settings.bShowBoxes)
this->RenderBox(pPlayerEntity);
if (g_Settings.bShowNames)
this->RenderName(pPlayerEntity, it);
if (g_Settings.bShowWeapons)
this->RenderWeaponName(pPlayerEntity);
}
}
================================================
FILE: Antario/Features/ESP.h
================================================
#pragma once
#include "..\Utils\GlobalVars.h"
#include "..\Utils\DrawManager.h"
class ESP
{
public:
void Render();
private:
void RenderBox(C_BaseEntity* pEnt);
void RenderName(C_BaseEntity* pEnt, int iterator);
void RenderWeaponName(C_BaseEntity* pEnt);
int localTeam{};
Color teamColor{ 195, 240, 100, 255 };
Color enemyColor{ 250, 165, 110, 255 };
};
extern ESP g_ESP;
================================================
FILE: Antario/Features/EnginePrediction.cpp
================================================
#include "EnginePrediction.h"
#include "..\SDK\CInput.h"
#include "..\SDK\CEntity.h"
#include "..\Utils\GlobalVars.h"
#include "..\SDK\CPrediction.h"
#include "..\SDK\CGlobalVarsBase.h"
float flOldCurtime;
float flOldFrametime;
void engine_prediction::RunEnginePred()
{
static int nTickBase;
static CUserCmd* pLastCmd;
// fix tickbase if game didnt render previous tick
if (pLastCmd)
{
if (pLastCmd->hasbeenpredicted)
nTickBase = g::pLocalEntity->GetTickBase();
else
++nTickBase;
}
// get random_seed as its 0 in clientmode->createmove
const auto getRandomSeed = []()
{
using MD5_PseudoRandomFn = unsigned long(__cdecl*)(std::uintptr_t);
static auto offset = Utils::FindSignature("client_panorama.dll", "55 8B EC 83 E4 F8 83 EC 70 6A 58");
static auto MD5_PseudoRandom = reinterpret_cast<MD5_PseudoRandomFn>(offset);
return MD5_PseudoRandom(g::pCmd->command_number) & 0x7FFFFFFF;
};
pLastCmd = g::pCmd;
flOldCurtime = g_pGlobalVars->curtime;
flOldFrametime = g_pGlobalVars->frametime;
g::uRandomSeed = getRandomSeed();
g_pGlobalVars->curtime = nTickBase * g_pGlobalVars->intervalPerTick;
g_pGlobalVars->frametime = g_pGlobalVars->intervalPerTick;
g_pMovement->StartTrackPredictionErrors(g::pLocalEntity);
CMoveData data;
memset(&data, 0, sizeof(CMoveData));
g_pMoveHelper->SetHost(g::pLocalEntity);
g_pPrediction->SetupMove(g::pLocalEntity, g::pCmd, g_pMoveHelper, &data);
g_pMovement->ProcessMovement(g::pLocalEntity, &data);
g_pPrediction->FinishMove(g::pLocalEntity, g::pCmd, &data);
}
void engine_prediction::EndEnginePred()
{
g_pMovement->FinishTrackPredictionErrors(g::pLocalEntity);
g_pMoveHelper->SetHost(nullptr);
g_pGlobalVars->curtime = flOldCurtime;
g_pGlobalVars->frametime = flOldFrametime;
}
================================================
FILE: Antario/Features/EnginePrediction.h
================================================
#pragma once
namespace engine_prediction
{
void RunEnginePred();
void EndEnginePred();
}
================================================
FILE: Antario/Features/Features.h
================================================
#pragma once
/*
* Header with all "features" directory headers included
* Used to make hooks look clean with its "include" files
* I try to keep them in alphabetical order to look clean
*/
#include "EnginePrediction.h"
#include "ESP.h"
#include "Misc.h"
================================================
FILE: Antario/Features/Misc.h
================================================
#pragma once
#include "..\Utils\GlobalVars.h"
#include "..\Settings.h"
class Misc
{
public:
void OnCreateMove()
{
this->pCmd = g::pCmd;
this->pLocal = g::pLocalEntity;
if (g_Settings.bBhopEnabled)
this->DoBhop();
// sum future shit
};
private:
CUserCmd* pCmd;
C_BaseEntity* pLocal;
void DoBhop() const
{
if (this->pLocal->GetMoveType() == MoveType_t::MOVETYPE_LADDER)
return;
static bool bLastJumped = false;
static bool bShouldFake = false;
if (!bLastJumped && bShouldFake)
{
bShouldFake = false;
pCmd->buttons |= IN_JUMP;
}
else if (pCmd->buttons & IN_JUMP)
{
if (pLocal->GetFlags() & FL_ONGROUND)
bShouldFake = bLastJumped = true;
else
{
pCmd->buttons &= ~IN_JUMP;
bLastJumped = false;
}
}
else
bShouldFake = bLastJumped = false;
}
};
extern Misc g_Misc;
================================================
FILE: Antario/GUI/GUI.cpp
================================================
#include "GUI.h"
#include "..\Settings.h"
#include <execution>
#include <algorithm>
using namespace ui;
// Defined to avoid including windowsx.h
#define GET_X_LPARAM(lp) (int(short(LOWORD(lp))))
#define GET_Y_LPARAM(lp) (int(short(HIWORD(lp))))
/* No inline vars for shared pointers I guess */
MenuStyle MenuMain::style; /* Struct containing all colors / paddings in our menu. */
Control* MenuMain::pFocusedObject; /* Pointer to the focused object */
std::shared_ptr<Font> MenuMain::pFont; /* Pointer to the font used in the menu. */
std::unique_ptr<MouseCursor> MenuMain::mouseCursor; /* Pointer to our mouse cursor */
void MouseCursor::Render()
{
const auto x = this->vecPointPos.x;
const auto y = this->vecPointPos.y;
///TODO: render this fucker to texture first and stop wasting time rendering that
// Draw inner fill color
SPoint ptPos1 = { x + 1, y + 1 };
SPoint ptPos2 = { x + 25, y + 12 };
SPoint ptPos3 = { x + 12, y + 25 };
g_Render.TriangleFilled(ptPos1, ptPos2, ptPos3, MenuMain::style.colCursor);
// Draw second smaller inner fill color
ptPos1 = { x + 6, y + 6 };
ptPos2 = { x + 19, y + 12 };
ptPos3 = { x + 12, y + 19 };
g_Render.TriangleFilled(ptPos1, ptPos2, ptPos3, MenuMain::style.colCursor);
// Draw border
g_Render.Triangle({ x, y }, { x + 25, y + 12 }, { x + 12, y + 25 }, Color::Black(200));
}
void MouseCursor::RunThink(const UINT uMsg, const LPARAM lParam)
{
switch (uMsg)
{
case WM_MOUSEMOVE:
case WM_NCMOUSEMOVE:
this->SetPosition(SPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)));
break;
case WM_LBUTTONDOWN:
this->bLMBPressed = true;
break;
case WM_LBUTTONUP:
this->bLMBHeld = false;
this->bLMBPressed = false;
break;
case WM_RBUTTONDOWN:
this->bRMBPressed = true;
break;
case WM_RBUTTONUP:
this->bRMBHeld = false;
this->bRMBPressed = false;
break;
}
if (this->bLMBPressed)
{
if (this->bLMBHeld)
this->bLMBPressed = false;
this->bLMBHeld = true;
}
if (this->bRMBPressed)
{
if (this->bRMBHeld)
this->bRMBPressed = false;
this->bRMBHeld = true;
}
}
bool MouseCursor::IsInBounds(const SPoint& vecDst1, const SPoint& vecDst2)
{
return this->IsInBounds({ vecDst1, vecDst2 });
}
bool MouseCursor::IsInBounds(const SRect& rcRect)
{
return rcRect.ContainsPoint(this->GetPos());
}
void UIObject::SetupBaseSize()
{
this->rcBoundingBox.right = rcBoundingBox.left + szSizeObject.x;
this->rcBoundingBox.bottom = rcBoundingBox.top + szSizeObject.y;
}
void Control::RequestFocus()
{
if (pFocusedObject == this)
return;
if (!this->CanHaveFocus())
return;
if (pFocusedObject)
pFocusedObject->OnFocusOut();
pFocusedObject = dynamic_cast<Control*>(this);
pFocusedObject->OnFocusIn();
}
void MenuMain::Render()
{
/* Render all children */
for (auto& it : this->vecChildren)
if (it.get() != pFocusedObject)
it->Render();
/* Render focused object as the last one */
if (pFocusedObject)
pFocusedObject->Render();
}
bool MenuMain::MsgProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
mouseCursor->RunThink(uMsg, lParam);
/* Loop through all of the child objects and capture the input */
if (!this->vecChildren.empty() && g_Settings.bMenuOpened)
{
for (auto& it : this->vecChildren)
if (it->MsgProc(uMsg, wParam, lParam))
return true;
}
return false;
}
void Section::AddDummy()
{
this->AddChild(std::make_shared<DummySpace>(SPoint(this->GetMaxChildWidth(), pFont->iHeight + style.iPaddingY)));
}
void Section::AddCheckBox(const std::string& strSelectableLabel, bool* bValue)
{
this->AddChild(std::make_shared<Checkbox>(strSelectableLabel, bValue, GetThis()));
}
void Section::AddButton(const std::string& strSelectableLabel, void(&fnPointer)(), SPoint vecButtonSize)
{
this->AddChild(std::make_shared<Button>(strSelectableLabel, fnPointer, GetThis(), vecButtonSize));
}
void Section::AddCombo(const std::string& strSelectableLabel, int* iVecIndex, std::vector<std::string> vecBoxOptions)
{
this->AddChild(std::make_shared<ComboBox>(strSelectableLabel, vecBoxOptions, iVecIndex, GetThis()));
}
void Section::AddSlider(const std::string& strLabel, float* flValue, float flMinValue, float flMaxValue)
{
this->AddChild(std::make_shared<Slider<float>>(strLabel, flValue, flMinValue, flMaxValue, GetThis()));
}
void Section::AddSlider(const std::string& strLabel, int* iValue, int iMinValue, int iMaxValue)
{
this->AddChild(std::make_shared<Slider<int>>(strLabel, iValue, iMinValue, iMaxValue, GetThis()));
}
ObjectPtr ControlManager::GetObjectAtPoint(SPoint ptPoint)
{
ObjectPtr returnObject = nullptr;
std::for_each(std::execution::par, vecChildren.begin(), vecChildren.end(),
[&ptPoint, &returnObject](ObjectPtr& object)
{
const auto control = std::dynamic_pointer_cast<Control>(object);
if (object->GetBBox().ContainsPoint(ptPoint) && (!control || control->GetUsable()))
{
object->SetHovered(true);
returnObject = object;
}
else object->SetHovered(false);
});
return returnObject;
}
void ControlManager::RenderChildObjects()
{
for (auto& it : this->vecChildren)
if (it.get() != pFocusedObject)
it->Render();
}
void ControlManager::SetupPositions()
{
this->SetupBaseSize();
this->SetupChildPositions();
}
void ControlManager::SetupChildPositions()
{
std::for_each(std::execution::par, vecChildren.begin(), vecChildren.end(),
[](ObjectPtr& object)
{
object->SetupPositions();
});
}
Window::Window(const std::string& strLabel, SPoint szSize, std::shared_ptr<Font> pMainFont, std::shared_ptr<Font> pFontHeader)
{
this->pFont = pMainFont;
this->pHeaderFont = pFontHeader;
this->strLabel = strLabel;
this->szSizeObject = szSize;
this->bIsDragged = false;
this->iHeaderHeight = pFont->iHeight + 6;
UIObject::SetPos(g_Render.GetScreenCenter() - (szSize * .5f));
this->type = TYPE_WINDOW;
}
void Window::Render()
{
// Draw main background rectangle
g_Render.RectFilledGradient(this->rcBoundingBox, Color(50, 50, 50, 255), Color(20, 20, 20, 235), GradientType::GRADIENT_VERTICAL);
// Draw header rect.
g_Render.RectFilledGradient(this->rcBoundingBox.Pos(), { this->rcBoundingBox.right, this->rcBoundingBox.top + this->iHeaderHeight }, style.colHeader,
Color(35, 35, 35, 230), GradientType::GRADIENT_VERTICAL);
// Draw header string, defined as label.
g_Render.String(this->rcBoundingBox.Mid().x, this->rcBoundingBox.top + int(float(iHeaderHeight) * 0.5f), FONT_CENTERED_X | FONT_CENTERED_Y,
style.colHeaderText, this->pHeaderFont, this->strLabel.c_str());
// Render all children
this->RenderChildObjects();
}
void Window::Initialize()
{
this->tSelectedTab = std::dynamic_pointer_cast<Tab>(*vecChildren.begin()); /* Setup the first selected tab as the first obj. */
this->tSelectedTab->SetActive(true);
this->SetupPositions();
for (auto& it : vecChildren)
it->Initialize();
}
void Window::SetupPositions()
{
/* Set base window rect */
this->SetupBaseSize();
this->rcHeader =
{
this->rcBoundingBox.left,
this->rcBoundingBox.top,
this->rcBoundingBox.right,
this->rcBoundingBox.top + this->iHeaderHeight
};
/* Make tabs take up all of aviable window width */
const int iSingleTabWidth = rcBoundingBox.Width() / vecChildren.size();
/* Setup tab positions */
int iUsedSpace = 0;
for (auto& it : vecChildren)
{
it->SetSize({ iSingleTabWidth, pFont->iHeight + 6 });
it->SetPos({ this->GetPos().x + iUsedSpace, this->GetPos().y + iHeaderHeight });
iUsedSpace += iSingleTabWidth;
it->SetupPositions();
}
}
bool Window::MsgProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (this->ptOldMousePos == SPoint(0, 0))
this->ptOldMousePos = mouseCursor->GetPos();
switch (uMsg)
{
case WM_MOUSEMOVE:
/* Handle window dragging */
if (this->bIsDragged)
{
this->SetPos(this->GetPos() + mouseCursor->GetPos() - this->ptOldMousePos);
this->SetupPositions();
return true;
}
case WM_LBUTTONDOWN:
{
/* Check what tab mouse is hovering */
auto tHoveredTab = std::dynamic_pointer_cast<Tab>(this->GetObjectAtPoint(mouseCursor->GetPos()));
if (tHoveredTab)
{
/* Handle tab selection */
if (mouseCursor->bLMBPressed)
{
tSelectedTab->SetActive(false);
tHoveredTab->SetActive(true);
tSelectedTab = tHoveredTab;
/* Clear focus on tabchange */
if (pFocusedObject)
{
pFocusedObject->OnFocusOut();
pFocusedObject = nullptr;
}
return true;
}
}
/* Check if the window is dragged. If it is, move window by the cursor difference between ticks. */
if (this->rcHeader.ContainsPoint(mouseCursor->GetPos()) && uMsg == WM_LBUTTONDOWN)
{
this->bIsDragged = true;
return true;
}
break;
}
case WM_LBUTTONUP:
this->bIsDragged = false;
break;
}
this->ptOldMousePos = mouseCursor->GetPos();
/* Run MsgProc for selected tab if we did't capture input yet */
return this->tSelectedTab->MsgProc(uMsg, wParam, lParam);
}
std::shared_ptr<Section> Tab::AddSection(const std::string& strLabel, float flPercSize)
{
auto tmp = std::make_shared<Section>(strLabel, flPercSize, GetThis());
this->AddChild(tmp);
tmp->SetParent(GetThis());
return tmp;
}
ScrollBar::ScrollBar(ObjectPtr pParentObject)
{
this->pParent = pParentObject;
this->iPageSize = 0;
this->szSizeObject.x = 8;
this->flScrollAmmount = 0;
this->bIsVisible = true; /* For initials checks */
this->bIsThumbUsed = false;
this->eHoveredButton = HoveredButton::NONE;
}
void ScrollBar::Initialize()
{
this->szSizeObject.y = pParent->GetSize().y - 2;
this->SetupPositions();
}
void ScrollBar::Render()
{
if (!this->bIsVisible)
return;
/* Up/down button */
g_Render.RectFilled(this->rcUpButton, style.colCheckboxFill);
g_Render.RectFilled(this->rcDownButton, style.colCheckboxFill);
/* Drag thumb */
g_Render.RectFilled(this->rcDragThumb, style.colCheckboxFill);
/* Has to be here as wndproc is not called when you hold lmb and not do anything else */
this->HandleArrowHeldMode();
}
bool ScrollBar::HandleMouseInput(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (!this->bIsVisible)
return false;
switch (uMsg)
{
case WM_MOUSEMOVE:
{
if (mouseCursor->IsInBounds(rcDragThumb))
eHoveredButton = THUMB;
else if (mouseCursor->IsInBounds(rcUpButton))
eHoveredButton = UP;
else if (mouseCursor->IsInBounds(rcDownButton))
eHoveredButton = DOWN;
else if (mouseCursor->IsInBounds(rcBoundingBox))
eHoveredButton = SHAFT;
else
eHoveredButton = NONE;
bIsHovered = eHoveredButton != NONE;
}
case WM_LBUTTONDOWN:
{
if (!mouseCursor->bLMBHeld)
bIsThumbUsed = false;
/* Handle pressed button behaviour */
if (bIsHovered && uMsg == WM_LBUTTONDOWN)
{
switch (eHoveredButton)
{
case THUMB:
{
if (mouseCursor->bLMBPressed)
{
this->RequestFocus();
bIsThumbUsed = true;
}
break;
}
case UP:
{
if (mouseCursor->bLMBPressed)
{
this->RequestFocus();
this->flScrollAmmount -= 1;
UpdateThumbRect();
this->pParent->SetupPositions();
return true;
}
break;
}
case DOWN:
if (mouseCursor->bLMBPressed)
{
this->RequestFocus();
this->flScrollAmmount += 1;
UpdateThumbRect();
this->pParent->SetupPositions();
return true;
}
break;
case SHAFT:
{
if (mouseCursor->bLMBPressed)
{
this->RequestFocus();
this->flScrollAmmount += mouseCursor->GetPos().y > rcDragThumb.top ? iPageSize : -iPageSize;
UpdateThumbRect();
this->pParent->SetupPositions();
return true;
}
}
}
}
/* If thumb is dragged */
if (bIsThumbUsed)
{
if (ptOldMousePos == SPoint(0, 0))
ptOldMousePos = mouseCursor->GetPos();
/* Scale the mouse movement accordingly */
auto diff = mouseCursor->GetPos().y - ptOldMousePos.y;
const auto scale = [](int in, int bmin, int bmax, int lmin, int lmax) {
return (float((lmax - lmin) * (in - bmin)) / float((bmax - bmin))) + lmin;
};
/* Change the scroll ammount by difference in pixels of the old and new mousepos scaled accordingly */
flScrollAmmount += scale(diff, 0, rcDownButton.top - rcUpButton.bottom - 4 - rcDragThumb.Height(), 0, pParent->GetScrollableHeight());
UpdateThumbRect();
this->pParent->SetupPositions();
return true;
}
}
break;
case WM_MOUSEWHEEL:
{
if (mouseCursor->IsInBounds(pParent->GetBBox()))
{
this->RequestFocus();
this->flScrollAmmount -= 10 * int(float(GET_WHEEL_DELTA_WPARAM(wParam)) / float(WHEEL_DELTA));
UpdateThumbRect();
this->pParent->SetupPositions();
return true;
}
}
}
ptOldMousePos = mouseCursor->GetPos();
return false;
}
void ScrollBar::SetupPositions()
{
if (!this->bIsVisible)
return;
this->iPageSize = pParent->GetSize().y - style.iPaddingY * 2;
this->rcBoundingBox.left = pParent->GetBBox().right - szSizeObject.x - 2;
this->rcBoundingBox.right = rcBoundingBox.left + szSizeObject.x;
this->rcBoundingBox.top = pParent->GetBBox().top + 1;
this->rcBoundingBox.bottom = rcBoundingBox.top + szSizeObject.y;
this->rcUpButton = { rcBoundingBox.left, rcBoundingBox.top, rcBoundingBox.right, rcBoundingBox.top + szSizeObject.x };
this->rcDownButton = { rcBoundingBox.left, rcBoundingBox.bottom - szSizeObject.x, rcBoundingBox.right, rcBoundingBox.bottom };
this->rcDragThumb.left = rcUpButton.left;
this->rcDragThumb.right = rcUpButton.right;
/* Thumb size, -4 cus of space between top and the bottom button */
this->sizeThumb = { szSizeObject.x, max(int(float((rcDownButton.top - rcUpButton.bottom) * iPageSize) / float(pParent->GetScrollableHeight() + iPageSize - 4)), style.iMinThumbSize) };
UpdateThumbRect();
}
void ScrollBar::UpdateThumbRect()
{
const auto iScrollableHeight = pParent->GetScrollableHeight();
if (iScrollableHeight <= 0)
{
/* Nothing to scroll through */
rcDragThumb.top = rcUpButton.bottom + 2;
rcDragThumb.bottom = rcDownButton.top - 2;
flScrollAmmount = 0;
}
else
{
/* Make sure we won't exceed out of bounds */
this->flScrollAmmount = std::clamp(flScrollAmmount, 0.f, float(iScrollableHeight));
/* 2 offset from buttons(so +2), and the position is scaled with the scrollable height (size of the aviable area for thumb / scrHeight) */
rcDragThumb.top = rcUpButton.bottom + 2 + (flScrollAmmount * (rcBoundingBox.Height() - (szSizeObject.x + 2) * 2 - sizeThumb.y) / iScrollableHeight);
rcDragThumb.bottom = rcDragThumb.top + sizeThumb.y;
}
}
void ScrollBar::HandleArrowHeldMode()
{
if (mouseCursor->bLMBHeld)
{
switch (eHoveredButton)
{
case UP:
{
this->flScrollAmmount -= 1;
UpdateThumbRect();
this->pParent->SetupPositions();
break;
}
case DOWN:
{
this->flScrollAmmount += 1;
UpdateThumbRect();
this->pParent->SetupPositions();
break;
}
}
}
}
Tab::Tab(const std::string& strTabName, int iNumColumns, ObjectPtr parentWindow)
{
this->bIsHovered = false;
this->bIsActive = false;
this->iColumnCount = iNumColumns;
this->strLabel = strTabName;
this->pParent = parentWindow;
this->type = TYPE_TAB;
}
void Tab::Initialize()
{
/* Remove padding from aviable section space */
const auto iAvWidthForSection = pParent->GetBBox().Width() - style.iPaddingX * (iColumnCount - 1) - 2 * style.iPaddingX;
this->iMaxChildWidth = iAvWidthForSection / iColumnCount;
std::for_each(std::execution::par, vecChildren.begin(), vecChildren.end(),
[](ObjectPtr it) {it->Initialize(); });
SetupPositions();
}
void Tab::Render()
{
/* Tab inside, for now menustyle color */
g_Render.RectFilled(rcBoundingBox, style.colMenuStyle);
/* Tab outline */
g_Render.Rect(rcBoundingBox, style.colSectionOutl);
/* Render tab name */
g_Render.String(rcBoundingBox.Mid(), FONT_CENTERED_X | FONT_CENTERED_Y | FONT_DROPSHADOW, style.colText(bIsActive ? 255 : 150), pFont, strLabel.c_str());
if (this->bIsHovered)
g_Render.RectFilled(rcBoundingBox, style.colHover);
/* Render sections */
if (this->bIsActive)
this->RenderChildObjects();
}
bool Tab::MsgProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (this->bIsActive)
{
for (auto& it : this->vecChildren)
if (it->MsgProc(uMsg, wParam, lParam))
return true;
}
return false;
}
void Tab::SetupChildPositions()
{
int iUsedArea = 0,
iPosX = pParent->GetBBox().left + style.iPaddingX;
const int iPosY = this->GetBBox().bottom + style.iPaddingY;
for (auto& it : this->vecChildren)
{
[this, &iUsedArea, &iPosX, &it](int posy)
{
posy += iUsedArea;
/* If section exceeds the bounds move it to the right */
if (posy + it->GetSize().y > pParent->GetBBox().bottom)
{
posy -= iUsedArea;
iUsedArea = 0;
iPosX += GetMaxChildWidth() + style.iPaddingX;
}
it->SetPos({ iPosX, posy });
iUsedArea += it->GetSize().y + style.iPaddingY;
it.get()->SetupPositions();
}(iPosY);
}
}
Section::Section(const std::string& strLabel, float flPercSize, ObjectPtr parentTab)
{
this->pParent = parentTab;
this->strLabel = strLabel;
this->iTotalPixelHeight = 0;
this->type = TYPE_SECTION;
flPercSize = std::clamp(flPercSize, 0.f, 1.f);
this->flSizeScale = flPercSize;
}
void Section::Render()
{
g_Render.RectFilled(this->rcBoundingBox, style.colSectionFill);
g_Render.Rect(this->rcBoundingBox, style.colSectionOutl);
g_Render.SetCustomScissorRect(this->rcBoundingBox);
{
scrollBar->Render();
this->RenderChildObjects();
}
g_Render.RestoreOriginalScissorRect();
}
void Section::RenderChildObjects()
{
for (auto& it : this->vecChildren)
{
auto control = std::dynamic_pointer_cast<Control>(it);
if (control.get() != pFocusedObject && control->GetVisible())
control->Render();
}
}
void Section::Initialize()
{
///TODO: Calc height using prev. calculated amount of sections in a column, we need to know how many paddings we need to redistribute between them
this->szSizeObject =
{
pParent->GetMaxChildWidth(),
int(float(pParent->GetParent()->GetBBox().Height() - pParent->GetBBox().Height() - std::dynamic_pointer_cast<Window>(pParent->GetParent())->GetHeaderHeight()) * flSizeScale) - 2 * style.iPaddingY
};
scrollBar->Initialize();
this->iMaxChildWidth = this->szSizeObject.x - 2 * style.iPaddingX - scrollBar->GetBBox().Width();
for (auto& it : vecChildren)
it->Initialize();
SetupPositions();
/* If there are not enough controls for scrollbar to be useful - disable it */
if (this->GetScrollableHeight() <= 0)
this->scrollBar->SetVisible(false);
}
bool Section::MsgProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
/* Let the scrollbar handle input first */
if (this->scrollBar->HandleMouseInput(uMsg, wParam, lParam))
return true;
/* Then let the focused control handle full msgproc if defined (colorpickers / any other popup windows) */
if (pFocusedObject && GetThis() == pFocusedObject->GetParent())
if (pFocusedObject->MsgProc(uMsg, wParam, lParam))
return true;
/* And after that all the other controls */
switch (uMsg)
{
/* Keyboard input */
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
case WM_KEYUP:
case WM_SYSKEYUP:
case WM_CHAR:
{
/* Let the focused control handle the input, no focus = no keyboard handling */
if (pFocusedObject)
if (pFocusedObject->HandleKeyboardInput(uMsg, wParam, lParam))
return true;
break;
}
/* Mouse input */
case WM_MOUSEMOVE:
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_MBUTTONDOWN:
case WM_MBUTTONUP:
case WM_RBUTTONDOWN:
case WM_RBUTTONUP:
case WM_XBUTTONDOWN:
case WM_XBUTTONUP:
case WM_LBUTTONDBLCLK:
case WM_MBUTTONDBLCLK:
case WM_RBUTTONDBLCLK:
case WM_XBUTTONDBLCLK:
case WM_MOUSEWHEEL:
{
/* Let the focused object handle mouse input before the rest */
if (pFocusedObject)
if (pFocusedObject->HandleMouseInput(uMsg, wParam, lParam))
return true;
bool bHandledInput = false;
auto pControl = this->GetObjectAtPoint(mouseCursor->GetPos());
/* If hovered control is not the focused one, we didnt capture input for it yet so do it */
if (pControl.get() != pFocusedObject)
{
const auto oldFocus = pFocusedObject;
if (pControl)
if (pControl->HandleMouseInput(uMsg, wParam, lParam))
bHandledInput = true;
/* Our control changed focused object */
if (oldFocus != pFocusedObject)
return bHandledInput;
/* If the new object is not a focused one OR you press LMB out-of-bouds of focused obj, LOSE FOCUS */
if (uMsg == WM_LBUTTONDOWN && pFocusedObject)
{
if ((bHandledInput && pFocusedObject != pControl.get()) || (!bHandledInput && GetThis() == pFocusedObject->GetParent()))
{
pFocusedObject->OnFocusOut();
pFocusedObject = nullptr;
}
}
}
return bHandledInput;
}
}
return false;
}
void Section::SetupChildPositions()
{
/* Create scrollbar object, this function is called first at init - thats why here */
if (!scrollBar)
this->scrollBar = std::make_unique<ScrollBar>(GetThis());
/* Setup positions of out scrollbar */
this->scrollBar->SetupPositions();
/* Saved used area of section. Used for control alignment. */
int iUsedArea = 0 - this->scrollBar->GetScrollAmmount();
for (auto& it : vecChildren)
{
/* useful cast for later use */
auto control = std::dynamic_pointer_cast<Control>(it);
const int iPosX = this->rcBoundingBox.left + style.iPaddingX,
iPosY = this->rcBoundingBox.top + style.iPaddingY + iUsedArea;
/* Check if we will exceed bounds of the section and do not render the selectable */
if (iPosY > this->GetBBox().bottom || iPosY + control->GetSize().y < this->GetPos().y)
{
control->SetVisible(false);
control->SetUsable(false);
}
else
{
/* If any part of the control is out-of-bounds, render it but dont capture input */
control->SetVisible(true);
if (iPosY + it->GetSize().y > this->GetBBox().bottom || iPosY < this->GetPos().y)
control->SetUsable(false);
else
control->SetUsable(true);
}
it->SetPos({ iPosX, iPosY });
it->SetupPositions();
iUsedArea += it->GetSize().y + style.iPaddingY;
}
/* Save full section height - all controls etc. */
this->iTotalPixelHeight = iUsedArea + this->scrollBar->GetScrollAmmount() + style.iPaddingY;
}
Checkbox::Checkbox(const std::string& strLabel, bool *bValue, ObjectPtr pParent)
{
this->pParent = pParent;
this->strLabel = strLabel;
this->bCheckboxValue = bValue;
this->szSizeObject = { 100, int(float(pFont->iHeight) * 1.5) };
this->type = TYPE_CHECKBOX;
}
void Checkbox::Render()
{
/* Checkbox background */
g_Render.RectFilled(this->rcBox, style.colCheckboxFill);
/* Fill the inside of the button depending on activation */
if (*this->bCheckboxValue)
g_Render.RectFilled(this->rcBox, style.colMenuStyle);
/* If the button is hovered, make it lighter */
if (this->bIsHovered)
g_Render.RectFilled(rcBox, style.colHover);
/* Render the outline */
g_Render.Rect(this->rcBox, { 15, 15, 15, 220 });
/* Render button label as its name */
g_Render.String(this->rcBox.right + int(float(style.iPaddingX) * 0.5f), this->rcBoundingBox.Mid().y,
FONT_DROPSHADOW | FONT_CENTERED_Y, style.colText, pFont, this->strLabel.c_str());
}
bool Checkbox::HandleMouseInput(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_LBUTTONDOWN:
case WM_LBUTTONDBLCLK:
if (mouseCursor->bLMBPressed)
{
/* Flip the checkbox value on LMButton press */
*this->bCheckboxValue = !*this->bCheckboxValue;
return true;
}
}
return false;
}
void Checkbox::SetupPositions()
{
this->SetupBaseSize();
this->rcBox = [this]()
{
auto size = int(float(rcBoundingBox.Height()) * 0.50f);
auto diff = (this->rcBoundingBox.Height() - size) / 2;
return SRect(rcBoundingBox.left + diff, rcBoundingBox.top + diff, rcBoundingBox.left + diff + size, rcBoundingBox.bottom - diff);
}();
}
Button::Button(const std::string& strLabel, void(&fnPointer)(), ObjectPtr pParent, SPoint ptButtonSize)
{
this->pParent = pParent;
this->strLabel = strLabel;
this->fnActionPlay = fnPointer;
this->bIsActivated = false;
this->type = TYPE_BUTTON;
/* Will be overriden on the init if == 0, 0 */
this->szSizeObject = ptButtonSize;
}
void Button::Render()
{
/* Fill the body of the button */
g_Render.RectFilled(this->rcBoundingBox, style.colMenuStyle);
/* Button outline */
g_Render.Rect(this->rcBoundingBox, style.colSectionOutl);
/* Text inside the button */
g_Render.String(this->rcBoundingBox.Mid(), FONT_DROPSHADOW | FONT_CENTERED_X | FONT_CENTERED_Y, style.colText, pFont, this->strLabel.c_str());
if (this->bIsHovered)
g_Render.RectFilled(this->rcBoundingBox, style.colHover);
}
void Button::Initialize()
{
/* Basically override if the size was not specified, its run only once anyway */
if (this->szSizeObject == SSize(0, 0))
szSizeObject = { this->pParent->GetMaxChildWidth(), pFont->iHeight + style.iPaddingY };
}
bool Button::HandleMouseInput(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_LBUTTONDOWN:
case WM_LBUTTONDBLCLK:
if (mouseCursor->bLMBPressed)
{
this->fnActionPlay(); /* Run the function passed as an arg. */
return true;
}
}
return false;
}
ComboBox::ComboBox(const std::string& strLabel, std::vector<std::string> vecBoxOptions, int* iCurrentValue, ObjectPtr pParent)
{
this->type = TYPE_COMBO;
this->pParent = pParent;
this->strLabel = strLabel;
this->idHovered = -1;
this->iCurrentValue = iCurrentValue;
this->vecSelectables = vecBoxOptions;
}
void ComboBox::Initialize()
{
this->szSizeObject.x = this->pParent->GetMaxChildWidth();
this->szSizeObject.y = int(pFont->iHeight + float(style.iPaddingY) * 0.5f) * 2;
}
void ComboBox::Render()
{
/* Render the label (name) above the combo */
g_Render.String(this->rcBoundingBox.Pos(), FONT_DROPSHADOW, style.colText, pFont, this->strLabel.c_str());
/* Render the selectable with the value in the middle and highlight if hovered */
if (this->bIsHovered)
g_Render.RectFilled(this->rcSelectable, style.colHover);
else
g_Render.RectFilled(this->rcSelectable, style.colComboBoxRect);
/* Render the selectable with the value in the middle */
g_Render.String(this->rcSelectable.Mid(), FONT_CENTERED_X | FONT_CENTERED_Y, style.colText, pFont,
this->vecSelectables[*this->iCurrentValue].c_str());
/* Render the small triangle */
{
SPoint ptPosMid, ptPosLeft, ptPosRight;
/* I know, hardcode. You should change this anyway */
ptPosMid.x = this->rcSelectable.right - 8;
ptPosRight.x = this->rcSelectable.right - 5;
ptPosLeft.x = this->rcSelectable.right - 11;
/* Draw two different versions (top-down, down-top) depending on activation */
if (!this->bIsActive)
{
ptPosRight.y = ptPosLeft.y = this->rcSelectable.top + 6;
ptPosMid.y = this->rcSelectable.bottom - 6;
}
else
{
ptPosRight.y = ptPosLeft.y = this->rcSelectable.bottom - 6;
ptPosMid.y = this->rcSelectable.top + 6;
}
g_Render.TriangleFilled(ptPosLeft, ptPosRight, ptPosMid, style.colText);
g_Render.Triangle(ptPosLeft, ptPosRight, ptPosMid, style.colText);
}/*-------------------------*/
/* Rectangle of the combo selectables, for scissorrect */
const SRect vpCombo =
{
rcBoundingBox.left,
rcBoundingBox.bottom,
rcBoundingBox.right,
rcSelectable.bottom + rcSelectable.Height() * int(vecSelectables.size())
};
/* Render selectables only within the rect, useful for scroll usage (if implemented later on) */
g_Render.SetCustomScissorRect(vpCombo);
if (this->bIsActive)
RenderSelectables();
g_Render.RestoreOriginalScissorRect();
}
bool ComboBox::HandleMouseInput(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_MOUSEMOVE:
case WM_LBUTTONDOWN:
{
/* If the main selectabled is hovered, handle only its input */
if (this->bIsHovered)
{
this->idHovered = -1;
if (mouseCursor->bLMBPressed)
{
this->bIsActive = !bIsActive;
/* If active, request focus so its rendered on top of every other selectable */
if (this->bIsActive)
this->RequestFocus();
return true;
}
}
else if (this->bIsActive &&
mouseCursor->IsInBounds({ this->rcSelectable.left, this->rcSelectable.bottom, this->rcSelectable.right,
this->rcSelectable.bottom + this->rcSelectable.Height() * int(this->vecSelectables.size()) }))
{
for (std::size_t it = 0; it < this->vecSelectables.size(); ++it)
{
/* Bounds of the looped element. */
const auto rcElementBounds = [this, it]()
{
int posy = this->rcSelectable.bottom + this->rcSelectable.Height() * it;
return SRect(this->rcSelectable.left, posy, this->rcSelectable.right, posy + this->rcSelectable.Height());
};
/* If we don't hover the element - ignore */
if (!mouseCursor->IsInBounds(rcElementBounds()))
continue;
this->idHovered = it;
if (mouseCursor->bLMBPressed)
{
*this->iCurrentValue = it;
this->idHovered = -1;
this->bIsActive = false;
return true;
}
}
}
else
this->idHovered = -1;
}
}
return false;
}
void ComboBox::SetupPositions()
{
this->SetupBaseSize();
this->rcSelectable = [this]()
{
int posy = this->rcBoundingBox.top + pFont->iHeight + int(float(style.iPaddingY) * 0.5f);
return SRect(this->rcBoundingBox.left, posy, this->rcBoundingBox.right, posy + pFont->iHeight + int(float(style.iPaddingY) * 0.5f));
}();
}
SPoint ComboBox::GetSelectableSize()
{
SPoint vecTmpSize;
vecTmpSize.y = pFont->iHeight + int(float(style.iPaddingY) * 0.5f);
vecTmpSize.x = this->GetSize().x;
return vecTmpSize;
}
void ComboBox::RenderSelectables()
{
/* Background square for the list */
g_Render.RectFilled({ this->rcSelectable.left, this->rcSelectable.bottom },
{ this->rcSelectable.right, this->rcSelectable.bottom + this->rcSelectable.Height() * int(this->vecSelectables.size()) },
style.colCheckboxFill);
/* Distinction line at top for seperation for dropdown */
g_Render.Line({ this->rcSelectable.left, this->rcSelectable.bottom },
{ this->rcSelectable.right, this->rcSelectable.bottom }, style.colSectionFill);
/* Highlight selectable if its selected (-1 = no hovered one) */
if (this->idHovered != -1)
{
const auto rcElementBounds = [this]() -> SRect
{
int posy = this->rcSelectable.bottom + this->rcSelectable.Height() * this->idHovered;
return {
this->rcSelectable.left + 1,
posy + 1,
this->rcSelectable.right - 1,
posy + this->rcSelectable.Height() - 1
};
};
g_Render.RectFilled(rcElementBounds(), style.colHover);
}
/* Render all of the selectable labels (names) in the middle */
auto index = 0;
const auto ptMid = this->rcSelectable.Mid();
for (const auto& it : vecSelectables)
g_Render.String({ ptMid.x, ptMid.y + this->rcSelectable.Height() * (index++ + 1) },
FONT_CENTERED_X | FONT_CENTERED_Y, style.colText, pFont, it.c_str());
}
template<typename T>
Slider<T>::Slider(const std::string& strLabel, T* tValue, T tMinValue, T tMaxValue, ObjectPtr pParent)
{
this->pParent = pParent;
this->strLabel = strLabel;
this->nValue = tValue;
this->nMin = tMinValue;
this->nMax = tMaxValue;
this->type = TYPE_SLIDER;
}
template <typename T>
void Slider<T>::Initialize()
{
this->szSizeObject.x = this->pParent->GetMaxChildWidth();
this->szSizeObject.y = int((pFont->iHeight + int(float(style.iPaddingY) * 0.5f)) * 1.75f);
const SSize szSelectableSize = { this->szSizeObject.x, pFont->iHeight + int(float(style.iPaddingY) * 0.5f) };
this->SetValue(*nValue); // Since its limited, it should not be any higher - even when set in settings before.
}
template<typename T>
void Slider<T>::Render()
{
std::stringstream ssToRender;
ssToRender << strLabel << ": " << std::fixed << std::setprecision(2) << *this->nValue;
/* Render the label (name) above the combo */
g_Render.String(this->rcBoundingBox.Pos(), FONT_DROPSHADOW, style.colText, pFont, ssToRender.str().c_str());
/* Render the selectable with the value in the middle */
g_Render.RectFilled(this->rcSelectable, style.colComboBoxRect);
/* Render outline */
g_Render.Rect(this->rcSelectable, style.colSectionOutl);
/* Fill the part of slider before the represented value */
g_Render.RectFilled({ this->GetZeroPos(), this->rcSelectable.top + 1, this->iButtonPosX, this->rcSelectable.bottom - 1 },
style.colMenuStyle);
/* Represented position of the value & its outline */
g_Render.RectFilled(this->iButtonPosX - 1, this->rcSelectable.top - 1, this->iButtonPosX + 1, this->rcSelectable.bottom + 1, Color::White());
g_Render.RectFilled(this->iButtonPosX + 1, this->rcSelectable.top - 1, this->iButtonPosX + 1, this->rcSelectable.bottom + 1, Color::Grey());
}
template <typename T>
void Slider<T>::SetupPositions()
{
this->SetupBaseSize();
this->rcSelectable =
{
rcBoundingBox.left,
rcBoundingBox.top + pFont->iHeight + int(float(style.iPaddingY) * 0.5f),
rcBoundingBox.right,
rcBoundingBox.bottom
};
/* Update button position */
this->iButtonPosX = (this->rcSelectable.left +
static_cast<int>((*this->nValue - this->nMin) * float(this->rcBoundingBox.Width()) / (this->nMax - this->nMin)));
}
template <typename T>
bool Slider<T>::HandleMouseInput(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_MOUSEMOVE:
{
/* Make sure we correct our hover state */
this->bIsHovered = mouseCursor->IsInBounds(this->rcSelectable);
this->iDragX = mouseCursor->GetPos().x;
}
case WM_LBUTTONDOWN:
{
/* Make sure we correct our hover state */
this->bIsHovered = mouseCursor->IsInBounds(this->rcSelectable);
if (mouseCursor->bLMBPressed && bIsHovered)
bPressed = true;
else if (!mouseCursor->bLMBHeld && bPressed)
bPressed = false;
if (this->bPressed)
{
if (iDragX == 0)
this->iDragX = mouseCursor->GetPos().x;
this->iDragOffset = this->iDragX - this->iButtonPosX;
this->iDragX = mouseCursor->GetPos().x;
if (this->iDragOffset != 0)
{
this->RequestFocus();
this->SetValue(static_cast<T>((this->iDragOffset * this->GetValuePerPixel()) + *this->nValue));
return true;
}
}
break;
}
}
return false;
}
template <typename T>
bool Slider<T>::HandleKeyboardInput(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if ( uMsg == WM_KEYDOWN )
{
switch ( wParam )
{
case VK_HOME:
this->SetValue(nMin);
return true;
case VK_END:
this->SetValue(nMax);
return true;
case VK_LEFT:
case VK_DOWN:
this->SetValue(*this->nValue - static_cast<T>(this->GetValuePerPixel()));
return true;
case VK_RIGHT:
case VK_UP:
this->SetValue(*this->nValue + static_cast<T>(this->GetValuePerPixel()));
return true;
case VK_NEXT:
this->SetValue(*this->nValue - static_cast<T>(10.f * this->GetValuePerPixel()));
return true;
case VK_PRIOR:
this->SetValue(*this->nValue + static_cast<T>(10.f * this->GetValuePerPixel()));
return true;
}
}
return false;
}
template<typename T>
float Slider<T>::GetValuePerPixel() const
{
return float(this->nMax - this->nMin) / this->szSizeObject.x;
}
template<typename T>
void Slider<T>::SetValue(T flValue)
{
flValue = max(flValue, this->nMin);
flValue = min(flValue, this->nMax);
*this->nValue = flValue;
this->SetupPositions();
}
template <typename T>
int Slider<T>::GetZeroPos()
{
if (this->nMin < 0)
return this->rcSelectable.left + static_cast<int>((0 - this->nMin) * float(this->rcBoundingBox.Width()) / float(this->nMax - this->nMin));
return this->rcSelectable.left + 1;
}
================================================
FILE: Antario/GUI/GUI.h
================================================
#pragma once
#include <vector>
#include "..\Utils\DrawManager.h"
#pragma warning(disable : 4244) // disable data loss warning
namespace ui
{
/* Predefinition */
class MenuMain;
class UIObject;
class Control;
class ControlManager;
class Section;
class Tab;
using SSize = SPoint;
using TabPtr = std::shared_ptr<Tab>;
using ObjectPtr = std::shared_ptr<UIObject>;
/* MST - Menu Selectable Type, specifies the type of the selectable for easier usage */
enum MST
{
TYPE_INCORR = -1,
TYPE_WINDOW,
TYPE_TAB,
TYPE_SECTION,
TYPE_CHECKBOX,
TYPE_BUTTON,
TYPE_COMBO,
TYPE_SLIDER,
};
struct MenuStyle
{
int iPaddingX = 20; /*- Padding between sections -*/
int iPaddingY = 6; /*- Padding between selectables -*/
int iMinThumbSize = 10;
Color colCursor = { 0, 150, 255, 100 }; /*- Color of the mouse cursor -*/
Color colHover = { 100, 100, 100, 30 }; /*- Color applied on the obj when mouse hovers above it -*/
Color colSectionOutl = { 15, 15, 15, 200 }; /*- Color of the section outline -*/
Color colSectionFill = { 0, 0, 0, 30 }; /*- Color filling the section bounds -*/
Color colCheckboxFill = { 50, 50, 50, 255 }; /*- Color of the first gradient color of the checkbox -*/
Color colMenuStyle = { 35, 35, 35, 255 }; /*- Color of the menu style controls -*/
Color colText = { 160, 160, 160, 255 }; /*- Color of the text inside the main window -*/
Color colHeader = { 50, 50, 50, 230 }; /*- Color of the header background -*/
Color colHeaderText = { 200, 200, 215 }; /*- Color of the text inside the header strip -*/
Color colComboBoxRect = { 50, 50, 50, 180 }; /*- Color of the combobox rectangle -*/
};
class MouseCursor
{
public:
MouseCursor() { this->vecPointPos = g_Render.GetScreenCenter(); };
virtual ~MouseCursor() = default;
virtual void Render();
virtual void RunThink(UINT uMsg, LPARAM lParam);
SPoint GetPos() const { return vecPointPos; }; /* Set&get actual mouse position */
virtual void SetPosition(SPoint ptPos) { this->vecPointPos = ptPos; };
/* Checks if the mouse is in specified bounds */
virtual bool IsInBounds(const SPoint& vecDst1, const SPoint& vecDst2);
virtual bool IsInBounds(const SRect& rcRect);
bool bLMBPressed = false; /* Actual state of Left Mouse Button (pressed or not) */
bool bRMBPressed = false; /* Actual state of Right Mouse Button (pressed or not) */
bool bLMBHeld = false;
bool bRMBHeld = false;
SPoint vecPointPos; /* Current mouse cursor position */
};
/* Main menu object - contains all of the data within it such as mouse cursor, windows etc */
class MenuMain
{
public:
MenuMain() = default;
virtual void Initialize();
virtual bool MsgProc(UINT uMsg, WPARAM wParam, LPARAM lParam);
virtual void Render(); /* Renders the object */
/* Non-inline, it breaks sharedpointers */
static MenuStyle style; /* Struct containing all colors / paddings in our menu. */
static Control* pFocusedObject; /* Pointer to the focused object */
static std::shared_ptr<Font> pFont; /* Pointer to the font used in the menu. */
static std::unique_ptr<MouseCursor> mouseCursor; /* Pointer to our mouse cursor */
std::vector<ObjectPtr> vecChildren;
};
/* Virtual main object class */
class UIObject : public MenuMain, public std::enable_shared_from_this<UIObject>
{
public:
UIObject() : type(MST(-1)), pParent(nullptr), bIsHovered(false), iMaxChildWidth(0) { }
/* Used to get shared_ptr from thisptr - makes using smart pointers easier */
ObjectPtr GetThis() { return shared_from_this(); }
/* Handle input */
bool MsgProc(UINT uMsg, WPARAM wParam, LPARAM lParam) override { return false; }
virtual bool HandleKeyboardInput(UINT uMsg, WPARAM wParam, LPARAM lParam) { return false; }
virtual bool HandleMouseInput (UINT uMsg, WPARAM wParam, LPARAM lParam) { return false; }
virtual SPoint GetPos() const { return this->rcBoundingBox.Pos(); }
virtual void SetPos(SPoint ptNewPosition) { this->rcBoundingBox.left = ptNewPosition.x; rcBoundingBox.top = ptNewPosition.y; }
virtual SSize GetSize() const { return this->szSizeObject; }
virtual void SetSize(SSize sNewSize) { this->szSizeObject = sNewSize; }
virtual SRect GetBBox() { return this->rcBoundingBox; }
virtual void SetHovered(bool hov) { this->bIsHovered = hov; }
virtual int GetScrollableHeight() const { return 0; }
/* Position setups */
void Initialize() override { }
virtual void SetupBaseSize(); /* Sets the object rect bounds using object size */
virtual void SetupPositions() { this->SetupBaseSize(); } /* Internal position setup */
/* Parent/child setting functions */
virtual void AddChild(ObjectPtr child) { this->vecChildren.push_back(child); }
virtual int GetMaxChildWidth() { return this->iMaxChildWidth; }
virtual void SetParent(ObjectPtr parent) { this->pParent = parent; };
virtual ObjectPtr GetParent() { return this->pParent; }
MST type; /* Type of an object. */
std::string strLabel; /* Label / Name of the window. */
protected:
ObjectPtr pParent; /* Parent object */
bool bIsHovered; /* Defines if the object is hovered with the mouse cursor. */
int iMaxChildWidth; /* Maximum child width. Set mainly for buttons and selectables. */
SSize szSizeObject; /* Size of the drawed object */
SRect rcBoundingBox; /* Bounding box of the drawed ent. */
};
/* Virtual control class */
class Control : public UIObject
{
public:
Control() : bIsVisible(false), bIsActive(false), bIsUsable(false) { }
/* Focus handling */
virtual bool CanHaveFocus() const { return false; } /* Defines if the object can have focus */
virtual void OnFocusIn() { } /* Action played when the focus aquired */
virtual void OnFocusOut() { } /* Action played when the focus is lost */
virtual void RequestFocus(); /* Makes object request focus - prioritize its input and drawing */
virtual void SetActive(bool bActive) { this->bIsActive = bActive; }
virtual bool GetActive() const { return this->bIsActive; }
virtual void SetUsable(bool bUsable) { this->bIsUsable = bUsable; }
virtual bool GetUsable() const { return this->bIsUsable; }
virtual void SetVisible(bool bVisible) { this->bIsVisible = bVisible; }
virtual bool GetVisible() const { return this->bIsVisible; }
protected:
bool bIsVisible; /* Defines if the control is rendered atm */
bool bIsActive; /* Defines if the control is currently in use */
bool bIsUsable; /* Defines if the control can be used at the moment */
};
/* Small virtual helper class */
class ControlManager : public UIObject
{
public:
ControlManager() = default;
void SetupPositions() override;
virtual void SetupChildPositions(); /* SetupPositions but for child objects. */
virtual void RenderChildObjects(); /* Renders all of the child objects, without the focused one. */
virtual ObjectPtr GetObjectAtPoint(SPoint ptPoint); /* Gets the object that is on the specified point. Used for "hover check". */
};
class Window : public ControlManager
{
public:
Window() : bIsDragged(false), iHeaderHeight(0), tSelectedTab(nullptr), pHeaderFont(nullptr) { }
Window(const std::string& strLabel, SPoint ptSize, std::shared_ptr<Font> pMainFont, std::shared_ptr<Font> pFontHeader);
void Render() override;
void Initialize() override;
void SetupPositions() override;
bool MsgProc(UINT uMsg, WPARAM wParam, LPARAM lParam) override;
int GetHeaderHeight() const { return this->iHeaderHeight; }
private:
bool bIsDragged; /* Says if the window is currently dragged. */
int iHeaderHeight; /* Header height in pixels */
TabPtr tSelectedTab; /* Actual selected window tab */
SRect rcHeader; /* Header bounding box */
SPoint ptOldMousePos; /* Old mouse position used for dragging */
std::shared_ptr<Font> pHeaderFont; /* Header only font */
};
class Tab : public ControlManager
{
public:
Tab(const std::string& strTabName, int iNumColumns, ObjectPtr parentWindow);
void Initialize() override;
void Render() override;
bool MsgProc(UINT uMsg, WPARAM wParam, LPARAM lParam) override;
void SetupChildPositions() override;
void SetActive(bool bNewActive) { this->bIsActive = bNewActive; }
std::shared_ptr<Section> AddSection(const std::string& strLabel, float flPercSize);
private:
int iColumnCount;
bool bIsActive;
};
class ScrollBar : public Control
{
public:
ScrollBar(ObjectPtr pParentObject);
void Initialize() override;
void Render() override;
bool HandleMouseInput(UINT uMsg, WPARAM wParam, LPARAM lParam) override;
void SetupPositions() override;
bool CanHaveFocus() const override { return true; }
void UpdateThumbRect();
int GetScrollAmmount() const { return this->flScrollAmmount; };
private:
void HandleArrowHeldMode();
float flScrollAmmount; /* The offset of the initial position */
int iPageSize; /* How much pixels are rendered in page (height) */
bool bIsThumbUsed; /* Defines if the tumb is grabbed */
enum ButtonState
{
CLEAR,
CLICKED_UP,
CLICKED_DOWN,
HELD_UP,
HELD_DOWN
};
enum HoveredButton
{
NONE,
UP,
DOWN,
THUMB,
SHAFT
};
SPoint ptOldMousePos;
SSize sizeThumb;
SRect rcUpButton;
SRect rcDownButton;
SRect rcDragThumb;
ButtonState eState;
HoveredButton eHoveredButton;
};
class Section : public ControlManager
{
public:
Section(const std::string& strLabel, float flPercSize, ObjectPtr parentTab);
void Render() override;
void RenderChildObjects() override;
void Initialize() override;
bool MsgProc(UINT uMsg, WPARAM wParam, LPARAM lParam) override;
void SetupChildPositions() override;
int GetScrollableHeight() const override { return iTotalPixelHeight - this->rcBoundingBox.Height(); }
virtual void AddDummy();
virtual void AddCheckBox(const std::string& strSelectableLabel, bool * bValue);
virtual void AddButton(const std::string& strSelectableLabel, void(&fnPointer)(), SPoint ptButtonSize = SPoint(0, 0));
virtual void AddCombo(const std::string& strSelectableLabel, int* iVecIndex, std::vector<std::string> vecBoxOptions);
virtual void AddSlider(const std::string& strLabel, float* flValue, float flMinValue, float flMaxValue);
virtual void AddSlider(const std::string& strLabel, int* iValue, int iMinValue, int iMaxValue);
protected:
int iTotalPixelHeight;
float flSizeScale; /* Scale of the window space taken by section */
SSize sizeSect; /* Size of the section */
std::unique_ptr<ScrollBar> scrollBar; /* Scrollbar of the section */
};
class Checkbox : public Control
{
public:
Checkbox(const std::string& strLabel, bool *bValue, ObjectPtr pParent);
void Render() override;
void SetupPositions() override;
bool HandleMouseInput(UINT uMsg, WPARAM wParam, LPARAM lParam) override;
bool* bCheckboxValue; /* The value we are changing with the checkbox */
private:
SRect rcBox;
};
class Button : public Control
{
public:
Button(const std::string& strLabel, void(&fnPointer)(), ObjectPtr pParent, SPoint ptButtonSize = SPoint(0, 0));
void Render() override;
void Initialize() override;
bool HandleMouseInput(UINT uMsg, WPARAM wParam, LPARAM lParam) override;
private:
bool bIsActivated; /* Defines if we activated the button */
void(*fnActionPlay)(); /* Pointer to the function that will be run at the button press. */
};
class ComboBox : public Control
{
public:
ComboBox(const std::string& strLabel, std::vector<std::string> vecBoxOptions, int* iCurrentValue, ObjectPtr pParent);
void Initialize() override;
void Render() override;
bool HandleMouseInput(UINT uMsg, WPARAM wParam, LPARAM lParam) override;
void SetupPositions() override;
bool CanHaveFocus() const override { return true; }
void OnFocusOut() override { this->bIsActive = false; };
virtual SPoint GetSelectableSize();
void RenderSelectables();
int* iCurrentValue; /* Current selected option. Defined as a pttor index. */
private:
int idHovered;
SRect rcSelectable; /* Selectable bounding box */
std::vector<std::string> vecSelectables; /* Vector of strings that will appear as diff settings. */
};
template <typename T>
class Slider : public Control
{
public:
Slider(const std::string& strLabel, T* tValue, T tMinValue, T tMaxValue, ObjectPtr pParent);
void Initialize() override;
void Render() override;
void SetupPositions() override;
bool HandleMouseInput(UINT uMsg, WPARAM wParam, LPARAM lParam) override;
bool HandleKeyboardInput(UINT uMsg, WPARAM wParam, LPARAM lParam) override;
bool CanHaveFocus() const override { return true; } /* Override so we specify that slider can have focus */
private:
float GetValuePerPixel() const; /* Get value change if we move slider 1 pixel wide */
void SetValue(T flValue); /* Set slider value to desired one */
int GetZeroPos(); /* Get the "beginning" of our slider fill value */
T* nValue; /* Slider current value */
T nMin; /* Minimal slider value */
T nMax; /* Maximal slider value */
int iDragX{}; /* Mouse position at the start of the drag */
int iDragOffset{}; /* Offset of the mouse position */
int iButtonPosX{}; /* Slider button representing value */
bool bPressed{};
SRect rcSelectable; /* Size of the internal selectable size of the combo */
};
class DummySpace : public Control
{
public:
DummySpace(SSize size) { this->szSizeObject = size; }
void Render() override { }
};
}
================================================
FILE: Antario/Hooks.cpp
================================================
#include <thread>
#include "Hooks.h"
#include "Utils\Utils.h"
#include "Features\Features.h"
Misc g_Misc;
Hooks g_Hooks;
Settings g_Settings;
void Hooks::Init()
{
// Get window handle
while (!(g_Hooks.hCSGOWindow = FindWindowA("Valve001", nullptr)))
{
using namespace std::literals::chrono_literals;
std::this_thread::sleep_for(50ms);
}
interfaces::Init(); // Get interfaces
g_pNetvars = std::make_unique<NetvarTree>();// Get netvars after getting interfaces as we use them
Utils::Log("Hooking in progress...");
// D3D Device pointer
const uintptr_t d3dDevice = **reinterpret_cast<uintptr_t**>(Utils::FindSignature("shaderapidx9.dll", "A1 ? ? ? ? 50 8B 08 FF 51 0C") + 1);
if (g_Hooks.hCSGOWindow) // Hook WNDProc to capture mouse / keyboard input
g_Hooks.pOriginalWNDProc = reinterpret_cast<WNDPROC>(SetWindowLongPtr(g_Hooks.hCSGOWindow, GWLP_WNDPROC, reinterpret_cast<LONG_PTR>(Hooks::WndProc)));
// VMTHooks
g_Hooks.pD3DDevice9Hook = std::make_unique<VMTHook>(reinterpret_cast<void*>(d3dDevice));
g_Hooks.pClientModeHook = std::make_unique<VMTHook>(g_pClientMode);
g_Hooks.pSurfaceHook = std::make_unique<VMTHook>(g_pSurface);
// Hook the table functions
g_Hooks.pD3DDevice9Hook->Hook(vtable_indexes::reset, Hooks::Reset);
g_Hooks.pD3DDevice9Hook->Hook(vtable_indexes::present, Hooks::Present);
g_Hooks.pClientModeHook->Hook(vtable_indexes::createMove, Hooks::CreateMove);
g_Hooks.pSurfaceHook ->Hook(vtable_indexes::lockCursor, Hooks::LockCursor);
// Create event listener, no need for it now so it will remain commented.
//const std::vector<const char*> vecEventNames = { "" };
//g_Hooks.pEventListener = std::make_unique<EventListener>(vecEventNames);
Utils::Log("Hooking completed!");
}
void Hooks::Restore()
{
Utils::Log("Unhooking in progress...");
{ // Unhook every function we hooked and restore original one
g_Hooks.pD3DDevice9Hook->Unhook(vtable_indexes::reset);
g_Hooks.pD3DDevice9Hook->Unhook(vtable_indexes::present);
g_Hooks.pClientModeHook->Unhook(vtable_indexes::createMove);
g_Hooks.pSurfaceHook ->Unhook(vtable_indexes::lockCursor);
SetWindowLongPtr(g_Hooks.hCSGOWindow, GWLP_WNDPROC, reinterpret_cast<LONG_PTR>(g_Hooks.pOriginalWNDProc));
g_pNetvars.reset(); /* Need to reset by-hand, global pointer so doesnt go out-of-scope */
}
Utils::Log("Unhooking succeded!");
// Destroy fonts and all textures we created
g_Render.Release();
}
bool __fastcall Hooks::CreateMove(IClientMode* thisptr, void* edx, float sample_frametime, CUserCmd* pCmd)
{
// Call original createmove before we start screwing with it
static auto oCreateMove = g_Hooks.pClientModeHook->GetOriginal<CreateMove_t>(24);
oCreateMove(thisptr, edx, sample_frametime, pCmd);
if (!pCmd || !pCmd->command_number)
return oCreateMove;
// Get globals
g::pCmd = pCmd;
g::pLocalEntity = g_pEntityList->GetClientEntity(g_pEngine->GetLocalPlayer());
if (!g::pLocalEntity)
return oCreateMove;
g_Misc.OnCreateMove();
// run shit outside enginepred
engine_prediction::RunEnginePred();
// run shit in enginepred
engine_prediction::EndEnginePred();
return false;
}
void __fastcall Hooks::LockCursor(ISurface* thisptr, void* edx)
{
static auto oLockCursor = g_Hooks.pSurfaceHook->GetOriginal<LockCursor_t>(vtable_indexes::lockCursor);
if (!g_Settings.bMenuOpened)
return oLockCursor(thisptr, edx);
g_pSurface->UnlockCursor();
}
HRESULT __stdcall Hooks::Reset(IDirect3DDevice9* pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters)
{
static auto oReset = g_Hooks.pD3DDevice9Hook->GetOriginal<Reset_t>(vtable_indexes::reset);
if (g_Hooks.bInitializedDrawManager)
{
Utils::Log("Reseting draw manager.");
g_Render.OnLostDevice();
HRESULT hr = oReset(pDevice, pPresentationParameters);
g_Render.OnResetDevice(pDevice);
Utils::Log("DrawManager reset succeded.");
return hr;
}
return oReset(pDevice, pPresentationParameters);
}
HRESULT __stdcall Hooks::Present(IDirect3DDevice9* pDevice, const RECT* pSourceRect, const RECT* pDestRect,
HWND hDestWindowOverride, const RGNDATA* pDirtyRegion)
{
IDirect3DStateBlock9* stateBlock = nullptr;
IDirect3DVertexDeclaration9* vertDec = nullptr;
pDevice->GetVertexDeclaration(&vertDec);
pDevice->CreateStateBlock(D3DSBT_PIXELSTATE, &stateBlock);
[pDevice]()
{
if (!g_Hooks.bInitializedDrawManager)
{
Utils::Log("Initializing Draw manager");
g_Render.InitDeviceObjects(pDevice);
g_Hooks.nMenu.Initialize();
g_Hooks.bInitializedDrawManager = true;
Utils::Log("Draw manager initialized");
}
else
{
g_Render.SetupRenderStates(); // Sets up proper render states for our state block
static std::string szWatermark = "Antario";
/* Put your draw calls here */
g_ESP.Render();
/* ------------------------ */
// Render menu after ESP so menu overlaps ESP
g_Render.String(8, 8, FONT_DROPSHADOW, Color(250, 150, 200, 180), g_Fonts.vecFonts[FONT_TAHOMA_8], szWatermark.c_str());
if (g_Settings.bMenuOpened)
{
g_Hooks.nMenu.Render(); // Render our menu
g_Hooks.nMenu.mouseCursor->Render();// Render mouse cursor in the end so its not overlapped
}
}
}();
stateBlock->Apply();
stateBlock->Release();
pDevice ->SetVertexDeclaration(vertDec);
static auto oPresent = g_Hooks.pD3DDevice9Hook->GetOriginal<Present_t>(17);
return oPresent(pDevice, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion);
}
LRESULT Hooks::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
// for now as a lambda, to be transfered somewhere
// Thanks uc/WasserEsser for pointing out my mistake!
// Working when you HOLD th button, not when you press it.
const auto getButtonHeld = [uMsg, wParam](bool& bButton, int vKey)
{
if (wParam != vKey) return;
if (uMsg == WM_KEYDOWN)
bButton = true;
else if (uMsg == WM_KEYUP)
bButton = false;
};
const auto getButtonToggle = [uMsg, wParam](bool& bButton, int vKey)
{
if (wParam != vKey) return;
if (uMsg == WM_KEYUP)
bButton = !bButton;
};
getButtonToggle(g_Settings.bMenuOpened, VK_INSERT);
if (g_Hooks.bInitializedDrawManager)
{
// our wndproc capture fn
if (g_Settings.bMenuOpened)
{
g_Hooks.nMenu.MsgProc(uMsg, wParam, lParam);
return true;
}
}
// Call original wndproc to make game use input again
return CallWindowProcA(g_Hooks.pOriginalWNDProc, hWnd, uMsg, wParam, lParam);
}
================================================
FILE: Antario/Hooks.h
================================================
#pragma once
#include "Utils\DrawManager.h"
#include "Utils\Interfaces.h"
#include "SDK\IClientMode.h"
#include "SDK\ISurface.h"
#include "EventListener.h"
#include "SDK\CInput.h"
#include "GUI\GUI.h"
namespace vtable_indexes
{
constexpr auto reset = 16;
constexpr auto present = 17;
constexpr auto createMove = 24;
constexpr auto lockCursor = 67;
}
class VMTHook;
class Hooks
{
public:
// Initialization setup, called on injection
static void Init();
static void Restore();
/*---------------------------------------------*/
/*-------------Hooked functions----------------*/
/*---------------------------------------------*/
static bool __fastcall CreateMove(IClientMode*, void*, float, CUserCmd*);
static void __fastcall LockCursor(ISurface*, void*);
static HRESULT __stdcall Reset (IDirect3DDevice9* pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters);
static HRESULT __stdcall Present (IDirect3DDevice9* pDevice, const RECT *pSourceRect, const RECT *pDestRect, HWND hDestWindowOverride, const RGNDATA *pDirtyRegion);
static LRESULT __stdcall WndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
private:
/*---------------------------------------------*/
/*-------------VMT Hook pointers---------------*/
/*---------------------------------------------*/
std::unique_ptr<VMTHook> pD3DDevice9Hook;
std::unique_ptr<VMTHook> pClientModeHook;
std::unique_ptr<VMTHook> pSurfaceHook;
/*---------------------------------------------*/
/*-------------Hook prototypes-----------------*/
/*---------------------------------------------*/
typedef bool (__fastcall* CreateMove_t) (IClientMode*, void*, float, CUserCmd*);
typedef void (__fastcall* LockCursor_t) (ISurface*, void*);
typedef long (__stdcall* Reset_t) (IDirect3DDevice9*, D3DPRESENT_PARAMETERS*);
typedef long (__stdcall* Present_t) (IDirect3DDevice9*, const RECT*, const RECT*, HWND, const RGNDATA*);
private:
ui::MenuMain nMenu;
HWND hCSGOWindow = nullptr; // CSGO window handle
bool bInitializedDrawManager = false; // Check if we initialized our draw manager
WNDPROC pOriginalWNDProc = nullptr; // Original CSGO window proc
std::unique_ptr<EventListener> pEventListener = nullptr; // Listens to csgo events, needs to be created
};
extern Hooks g_Hooks;
class VMTHook
{
public:
VMTHook(void* ppClass)
{
this->ppBaseClass = static_cast<std::uintptr_t**>(ppClass);
// loop through all valid class indexes. When it will hit invalid (not existing) it will end the loop
while (static_cast<std::uintptr_t*>(*this->ppBaseClass)[this->indexCount])
++this->indexCount;
const std::size_t kSizeTable = this->indexCount * sizeof(std::uintptr_t);
this->pOriginalVMT = *this->ppBaseClass;
this->pNewVMT = std::make_unique<std::uintptr_t[]>(this->indexCount);
// copy original vtable to our local copy of it
std::memcpy(this->pNewVMT.get(), this->pOriginalVMT, kSizeTable);
// replace original class with our local copy
*this->ppBaseClass = this->pNewVMT.get();
};
~VMTHook() { *this->ppBaseClass = this->pOriginalVMT; };
template<class Type>
Type GetOriginal(const std::size_t index)
{
return reinterpret_cast<Type>(this->pOriginalVMT[index]);
};
HRESULT Hook(const std::size_t index, void* fnNew)
{
if (index > this->indexCount) // check if given index is valid
return E_INVALIDARG;
this->pNewVMT[index] = reinterpret_cast<std::uintptr_t>(fnNew);
return S_OK;
};
HRESULT Unhook(const std::size_t index)
{
if (index > this->indexCount)
return E_INVALIDARG;
this->pNewVMT[index] = this->pOriginalVMT[index];
return S_OK;
};
private:
std::unique_ptr<std::uintptr_t[]> pNewVMT = nullptr; // Actual used vtable
std::uintptr_t** ppBaseClass = nullptr; // Saved pointer to original class
std::uintptr_t* pOriginalVMT = nullptr; // Saved original pointer to the VMT
std::size_t indexCount = 0; // Count of indexes inside out f-ction
};
================================================
FILE: Antario/LIB/freetype/freetype/config/ftconfig.h
================================================
/****************************************************************************
*
* ftconfig.h
*
* ANSI-specific configuration file (specification only).
*
* Copyright (C) 1996-2019 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/**************************************************************************
*
* This header file contains a number of macro definitions that are used by
* the rest of the engine. Most of the macros here are automatically
* determined at compile time, and you should not need to change it to port
* FreeType, except to compile the library with a non-ANSI compiler.
*
* Note however that if some specific modifications are needed, we advise
* you to place a modified copy in your build directory.
*
* The build directory is usually `builds/<system>`, and contains
* system-specific files that are always included first when building the
* library.
*
* This ANSI version should stay in `include/config/`.
*
*/
#ifndef FTCONFIG_H_
#define FTCONFIG_H_
#include <ft2build.h>
#include FT_CONFIG_OPTIONS_H
#include FT_CONFIG_STANDARD_LIBRARY_H
FT_BEGIN_HEADER
/**************************************************************************
*
* PLATFORM-SPECIFIC CONFIGURATION MACROS
*
* These macros can be toggled to suit a specific system. The current ones
* are defaults used to compile FreeType in an ANSI C environment (16bit
* compilers are also supported). Copy this file to your own
* `builds/<system>` directory, and edit it to port the engine.
*
*/
/* There are systems (like the Texas Instruments 'C54x) where a `char` */
/* has 16~bits. ANSI~C says that `sizeof(char)` is always~1. Since an */
/* `int` has 16~bits also for this system, `sizeof(int)` gives~1 which */
/* is probably unexpected. */
/* */
/* `CHAR_BIT` (defined in `limits.h`) gives the number of bits in a */
/* `char` type. */
#ifndef FT_CHAR_BIT
#define FT_CHAR_BIT CHAR_BIT
#endif
/* The size of an `int` type. */
#if FT_UINT_MAX == 0xFFFFUL
#define FT_SIZEOF_INT ( 16 / FT_CHAR_BIT )
#elif FT_UINT_MAX == 0xFFFFFFFFUL
#define FT_SIZEOF_INT ( 32 / FT_CHAR_BIT )
#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL
#define FT_SIZEOF_INT ( 64 / FT_CHAR_BIT )
#else
#error "Unsupported size of `int' type!"
#endif
/* The size of a `long` type. A five-byte `long` (as used e.g. on the */
/* DM642) is recognized but avoided. */
#if FT_ULONG_MAX == 0xFFFFFFFFUL
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL
#define FT_SIZEOF_LONG ( 64 / FT_CHAR_BIT )
#else
#error "Unsupported size of `long' type!"
#endif
/* `FT_UNUSED` indicates that a given parameter is not used -- */
/* this is only used to get rid of unpleasant compiler warnings. */
#ifndef FT_UNUSED
#define FT_UNUSED( arg ) ( (arg) = (arg) )
#endif
/**************************************************************************
*
* AUTOMATIC CONFIGURATION MACROS
*
* These macros are computed from the ones defined above. Don't touch
* their definition, unless you know precisely what you are doing. No
* porter should need to mess with them.
*
*/
/**************************************************************************
*
* Mac support
*
* This is the only necessary change, so it is defined here instead
* providing a new configuration file.
*/
#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) )
/* No Carbon frameworks for 64bit 10.4.x. */
/* `AvailabilityMacros.h` is available since Mac OS X 10.2, */
/* so guess the system version by maximum errno before inclusion. */
#include <errno.h>
#ifdef ECANCELED /* defined since 10.2 */
#include "AvailabilityMacros.h"
#endif
#if defined( __LP64__ ) && \
( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 )
#undef FT_MACINTOSH
#endif
#elif defined( __SC__ ) || defined( __MRC__ )
/* Classic MacOS compilers */
#include "ConditionalMacros.h"
#if TARGET_OS_MAC
#define FT_MACINTOSH 1
#endif
#endif
/* Fix compiler warning with sgi compiler. */
#if defined( __sgi ) && !defined( __GNUC__ )
#if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
#pragma set woff 3505
#endif
#endif
/**************************************************************************
*
* @section:
* basic_types
*
*/
/**************************************************************************
*
* @type:
* FT_Int16
*
* @description:
* A typedef for a 16bit signed integer type.
*/
typedef signed short FT_Int16;
/**************************************************************************
*
* @type:
* FT_UInt16
*
* @description:
* A typedef for a 16bit unsigned integer type.
*/
typedef unsigned short FT_UInt16;
/* */
/* this #if 0 ... #endif clause is for documentation purposes */
#if 0
/**************************************************************************
*
* @type:
* FT_Int32
*
* @description:
* A typedef for a 32bit signed integer type. The size depends on the
* configuration.
*/
typedef signed XXX FT_Int32;
/**************************************************************************
*
* @type:
* FT_UInt32
*
* A typedef for a 32bit unsigned integer type. The size depends on the
* configuration.
*/
typedef unsigned XXX FT_UInt32;
/**************************************************************************
*
* @type:
* FT_Int64
*
* A typedef for a 64bit signed integer type. The size depends on the
* configuration. Only defined if there is real 64bit support;
* otherwise, it gets emulated with a structure (if necessary).
*/
typedef signed XXX FT_Int64;
/**************************************************************************
*
* @type:
* FT_UInt64
*
* A typedef for a 64bit unsigned integer type. The size depends on the
* configuration. Only defined if there is real 64bit support;
* otherwise, it gets emulated with a structure (if necessary).
*/
typedef unsigned XXX FT_UInt64;
/* */
#endif
#if FT_SIZEOF_INT == ( 32 / FT_CHAR_BIT )
typedef signed int FT_Int32;
typedef unsigned int FT_UInt32;
#elif FT_SIZEOF_LONG == ( 32 / FT_CHAR_BIT )
typedef signed long FT_Int32;
typedef unsigned long FT_UInt32;
#else
#error "no 32bit type found -- please check your configuration files"
#endif
/* look up an integer type that is at least 32~bits */
#if FT_SIZEOF_INT >= ( 32 / FT_CHAR_BIT )
typedef int FT_Fast;
typedef unsigned int FT_UFast;
#elif FT_SIZEOF_LONG >= ( 32 / FT_CHAR_BIT )
typedef long FT_Fast;
typedef unsigned long FT_UFast;
#endif
/* determine whether we have a 64-bit `int` type for platforms without */
/* Autoconf */
#if FT_SIZEOF_LONG == ( 64 / FT_CHAR_BIT )
/* `FT_LONG64` must be defined if a 64-bit type is available */
#define FT_LONG64
#define FT_INT64 long
#define FT_UINT64 unsigned long
/**************************************************************************
*
* A 64-bit data type may create compilation problems if you compile in
* strict ANSI mode. To avoid them, we disable other 64-bit data types if
* `__STDC__` is defined. You can however ignore this rule by defining the
* `FT_CONFIG_OPTION_FORCE_INT64` configuration macro.
*/
#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
/* this compiler provides the `__int64` type */
#define FT_LONG64
#define FT_INT64 __int64
#define FT_UINT64 unsigned __int64
#elif defined( __BORLANDC__ ) /* Borland C++ */
/* XXXX: We should probably check the value of `__BORLANDC__` in order */
/* to test the compiler version. */
/* this compiler provides the `__int64` type */
#define FT_LONG64
#define FT_INT64 __int64
#define FT_UINT64 unsigned __int64
#elif defined( __WATCOMC__ ) /* Watcom C++ */
/* Watcom doesn't provide 64-bit data types */
#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
#elif defined( __GNUC__ )
/* GCC provides the `long long` type */
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
#endif /* __STDC_VERSION__ >= 199901L */
#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
#ifdef FT_LONG64
typedef FT_INT64 FT_Int64;
typedef FT_UINT64 FT_UInt64;
#endif
#ifdef _WIN64
/* only 64bit Windows uses the LLP64 data model, i.e., */
/* 32bit integers, 64bit pointers */
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x)
#else
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x)
#endif
/**************************************************************************
*
* miscellaneous
*
*/
#define FT_BEGIN_STMNT do {
#define FT_END_STMNT } while ( 0 )
#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
/* `typeof` condition taken from gnulib's `intprops.h` header file */
#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 ) || \
( defined( __IBMC__ ) && __IBMC__ >= 1210 && \
defined( __IBM__TYPEOF__ ) ) || \
( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) )
#define FT_TYPEOF( type ) ( __typeof__ ( type ) )
#else
#define FT_TYPEOF( type ) /* empty */
#endif
/* Use `FT_LOCAL` and `FT_LOCAL_DEF` to declare and define, */
/* respectively, a function that gets used only within the scope of a */
/* module. Normally, both the header and source code files for such a */
/* function are within a single module directory. */
/* */
/* Intra-module arrays should be tagged with `FT_LOCAL_ARRAY` and */
/* `FT_LOCAL_ARRAY_DEF`. */
/* */
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
#define FT_LOCAL( x ) static x
#define FT_LOCAL_DEF( x ) static x
#else
#ifdef __cplusplus
#define FT_LOCAL( x ) extern "C" x
#define FT_LOCAL_DEF( x ) extern "C" x
#else
#define FT_LOCAL( x ) extern x
#define FT_LOCAL_DEF( x ) x
#endif
#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
#define FT_LOCAL_ARRAY( x ) extern const x
#define FT_LOCAL_ARRAY_DEF( x ) const x
/* Use `FT_BASE` and `FT_BASE_DEF` to declare and define, respectively, */
/* functions that are used in more than a single module. In the */
/* current setup this implies that the declaration is in a header file */
/* in the `include/freetype/internal` directory, and the function body */
/* is in a file in `src/base`. */
/* */
#ifndef FT_BASE
#ifdef __cplusplus
#define FT_BASE( x ) extern "C" x
#else
#define FT_BASE( x ) extern x
#endif
#endif /* !FT_BASE */
#ifndef FT_BASE_DEF
#ifdef __cplusplus
#define FT_BASE_DEF( x ) x
#else
#define FT_BASE_DEF( x ) x
#endif
#endif /* !FT_BASE_DEF */
/* When compiling FreeType as a DLL or DSO with hidden visibility */
/* some systems/compilers need a special attribute in front OR after */
/* the return type of function declarations. */
/* */
/* Two macros are used within the FreeType source code to define */
/* exported library functions: `FT_EXPORT` and `FT_EXPORT_DEF`. */
/* */
/* - `FT_EXPORT( return_type )` */
/* */
/* is used in a function declaration, as in */
/* */
/* ``` */
/* FT_EXPORT( FT_Error ) */
/* FT_Init_FreeType( FT_Library* alibrary ); */
/* ``` */
/* */
/* - `FT_EXPORT_DEF( return_type )` */
/* */
/* is used in a function definition, as in */
/* */
/* ``` */
/* FT_EXPORT_DEF( FT_Error ) */
/* FT_Init_FreeType( FT_Library* alibrary ) */
/* { */
/* ... some code ... */
/* return FT_Err_Ok; */
/* } */
/* ``` */
/* */
/* You can provide your own implementation of `FT_EXPORT` and */
/* `FT_EXPORT_DEF` here if you want. */
/* */
/* To export a variable, use `FT_EXPORT_VAR`. */
/* */
#ifndef FT_EXPORT
#ifdef FT2_BUILD_LIBRARY
#if defined( _WIN32 ) && defined( DLL_EXPORT )
#define FT_EXPORT( x ) __declspec( dllexport ) x
#elif defined( __GNUC__ ) && __GNUC__ >= 4
#define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x
#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x550
#define FT_EXPORT( x ) __global x
#elif defined( __cplusplus )
#define FT_EXPORT( x ) extern "C" x
#else
#define FT_EXPORT( x ) extern x
#endif
#else
#if defined( _WIN32 ) && defined( DLL_IMPORT )
#define FT_EXPORT( x ) __declspec( dllimport ) x
#elif defined( __cplusplus )
#define FT_EXPORT( x ) extern "C" x
#else
#define FT_EXPORT( x ) extern x
#endif
#endif
#endif /* !FT_EXPORT */
#ifndef FT_EXPORT_DEF
#ifdef __cplusplus
#define FT_EXPORT_DEF( x ) extern "C" x
#else
#define FT_EXPORT_DEF( x ) extern x
#endif
#endif /* !FT_EXPORT_DEF */
#ifndef FT_EXPORT_VAR
#ifdef __cplusplus
#define FT_EXPORT_VAR( x ) extern "C" x
#else
#define FT_EXPORT_VAR( x ) extern x
#endif
#endif /* !FT_EXPORT_VAR */
/* The following macros are needed to compile the library with a */
/* C++ compiler and with 16bit compilers. */
/* */
/* This is special. Within C++, you must specify `extern "C"` for */
/* functions which are used via function pointers, and you also */
/* must do that for structures which contain function pointers to */
/* assure C linkage -- it's not possible to have (local) anonymous */
/* functions which are accessed by (global) function pointers. */
/* */
/* */
/* FT_CALLBACK_DEF is used to _define_ a callback function, */
/* located in the same source code file as the structure that uses */
/* it. */
/* */
/* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */
/* and define a callback function, respectively, in a similar way */
/* as FT_BASE and FT_BASE_DEF work. */
/* */
/* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
/* contains pointers to callback functions. */
/* */
/* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */
/* that contains pointers to callback functions. */
/* */
/* */
/* Some 16bit compilers have to redefine these macros to insert */
/* the infamous `_cdecl` or `__fastcall` declarations. */
/* */
#ifndef FT_CALLBACK_DEF
#ifdef __cplusplus
#define FT_CALLBACK_DEF( x ) extern "C" x
#else
#define FT_CALLBACK_DEF( x ) static x
#endif
#endif /* FT_CALLBACK_DEF */
#ifndef FT_BASE_CALLBACK
#ifdef __cplusplus
#define FT_BASE_CALLBACK( x ) extern "C" x
#define FT_BASE_CALLBACK_DEF( x ) extern "C" x
#else
#define FT_BASE_CALLBACK( x ) extern x
#define FT_BASE_CALLBACK_DEF( x ) x
#endif
#endif /* FT_BASE_CALLBACK */
#ifndef FT_CALLBACK_TABLE
#ifdef __cplusplus
#define FT_CALLBACK_TABLE extern "C"
#define FT_CALLBACK_TABLE_DEF extern "C"
#else
#define FT_CALLBACK_TABLE extern
#define FT_CALLBACK_TABLE_DEF /* nothing */
#endif
#endif /* FT_CALLBACK_TABLE */
FT_END_HEADER
#endif /* FTCONFIG_H_ */
/* END */
================================================
FILE: Antario/LIB/freetype/freetype/config/ftheader.h
================================================
/****************************************************************************
*
* ftheader.h
*
* Build macros of the FreeType 2 library.
*
* Copyright (C) 1996-2019 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTHEADER_H_
#define FTHEADER_H_
/*@***********************************************************************/
/* */
/* <Macro> */
/* FT_BEGIN_HEADER */
/* */
/* <Description> */
/* This macro is used in association with @FT_END_HEADER in header */
/* files to ensure that the declarations within are properly */
/* encapsulated in an `extern "C" { .. }` block when included from a */
/* C++ compiler. */
/* */
#ifdef __cplusplus
#define FT_BEGIN_HEADER extern "C" {
#else
#define FT_BEGIN_HEADER /* nothing */
#endif
/*@***********************************************************************/
/* */
/* <Macro> */
/* FT_END_HEADER */
/* */
/* <Description> */
/* This macro is used in association with @FT_BEGIN_HEADER in header */
/* files to ensure that the declarations within are properly */
/* encapsulated in an `extern "C" { .. }` block when included from a */
/* C++ compiler. */
/* */
#ifdef __cplusplus
#define FT_END_HEADER }
#else
#define FT_END_HEADER /* nothing */
#endif
/**************************************************************************
*
* Aliases for the FreeType 2 public and configuration files.
*
*/
/**************************************************************************
*
* @section:
* header_file_macros
*
* @title:
* Header File Macros
*
* @abstract:
* Macro definitions used to `#include` specific header files.
*
* @description:
* The following macros are defined to the name of specific FreeType~2
* header files. They can be used directly in `#include` statements as
* in:
*
* ```
* #include FT_FREETYPE_H
* #include FT_MULTIPLE_MASTERS_H
* #include FT_GLYPH_H
* ```
*
* There are several reasons why we are now using macros to name public
* header files. The first one is that such macros are not limited to
* the infamous 8.3~naming rule required by DOS (and
* `FT_MULTIPLE_MASTERS_H` is a lot more meaningful than `ftmm.h`).
*
* The second reason is that it allows for more flexibility in the way
* FreeType~2 is installed on a given system.
*
*/
/* configuration files */
/**************************************************************************
*
* @macro:
* FT_CONFIG_CONFIG_H
*
* @description:
* A macro used in `#include` statements to name the file containing
* FreeType~2 configuration data.
*
*/
#ifndef FT_CONFIG_CONFIG_H
#define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h>
#endif
/**************************************************************************
*
* @macro:
* FT_CONFIG_STANDARD_LIBRARY_H
*
* @description:
* A macro used in `#include` statements to name the file containing
* FreeType~2 interface to the standard C library functions.
*
*/
#ifndef FT_CONFIG_STANDARD_LIBRARY_H
#define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h>
#endif
/**************************************************************************
*
* @macro:
* FT_CONFIG_OPTIONS_H
*
* @description:
* A macro used in `#include` statements to name the file containing
* FreeType~2 project-specific configuration options.
*
*/
#ifndef FT_CONFIG_OPTIONS_H
#define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
#endif
/**************************************************************************
*
* @macro:
* FT_CONFIG_MODULES_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* list of FreeType~2 modules that are statically linked to new library
* instances in @FT_Init_FreeType.
*
*/
#ifndef FT_CONFIG_MODULES_H
#define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h>
#endif
/* */
/* public headers */
/**************************************************************************
*
* @macro:
* FT_FREETYPE_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* base FreeType~2 API.
*
*/
#define FT_FREETYPE_H <freetype/freetype.h>
/**************************************************************************
*
* @macro:
* FT_ERRORS_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* list of FreeType~2 error codes (and messages).
*
* It is included by @FT_FREETYPE_H.
*
*/
#define FT_ERRORS_H <freetype/fterrors.h>
/**************************************************************************
*
* @macro:
* FT_MODULE_ERRORS_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* list of FreeType~2 module error offsets (and messages).
*
*/
#define FT_MODULE_ERRORS_H <freetype/ftmoderr.h>
/**************************************************************************
*
* @macro:
* FT_SYSTEM_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* FreeType~2 interface to low-level operations (i.e., memory management
* and stream i/o).
*
* It is included by @FT_FREETYPE_H.
*
*/
#define FT_SYSTEM_H <freetype/ftsystem.h>
/**************************************************************************
*
* @macro:
* FT_IMAGE_H
*
* @description:
* A macro used in `#include` statements to name the file containing type
* definitions related to glyph images (i.e., bitmaps, outlines,
* scan-converter parameters).
*
* It is included by @FT_FREETYPE_H.
*
*/
#define FT_IMAGE_H <freetype/ftimage.h>
/**************************************************************************
*
* @macro:
* FT_TYPES_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* basic data types defined by FreeType~2.
*
* It is included by @FT_FREETYPE_H.
*
*/
#define FT_TYPES_H <freetype/fttypes.h>
/**************************************************************************
*
* @macro:
* FT_LIST_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* list management API of FreeType~2.
*
* (Most applications will never need to include this file.)
*
*/
#define FT_LIST_H <freetype/ftlist.h>
/**************************************************************************
*
* @macro:
* FT_OUTLINE_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* scalable outline management API of FreeType~2.
*
*/
#define FT_OUTLINE_H <freetype/ftoutln.h>
/**************************************************************************
*
* @macro:
* FT_SIZES_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* API which manages multiple @FT_Size objects per face.
*
*/
#define FT_SIZES_H <freetype/ftsizes.h>
/**************************************************************************
*
* @macro:
* FT_MODULE_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* module management API of FreeType~2.
*
*/
#define FT_MODULE_H <freetype/ftmodapi.h>
/**************************************************************************
*
* @macro:
* FT_RENDER_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* renderer module management API of FreeType~2.
*
*/
#define FT_RENDER_H <freetype/ftrender.h>
/**************************************************************************
*
* @macro:
* FT_DRIVER_H
*
* @description:
* A macro used in `#include` statements to name the file containing
* structures and macros related to the driver modules.
*
*/
#define FT_DRIVER_H <freetype/ftdriver.h>
/**************************************************************************
*
* @macro:
* FT_AUTOHINTER_H
*
* @description:
* A macro used in `#include` statements to name the file containing
* structures and macros related to the auto-hinting module.
*
* Deprecated since version~2.9; use @FT_DRIVER_H instead.
*
*/
#define FT_AUTOHINTER_H FT_DRIVER_H
/**************************************************************************
*
* @macro:
* FT_CFF_DRIVER_H
*
* @description:
* A macro used in `#include` statements to name the file containing
* structures and macros related to the CFF driver module.
*
* Deprecated since version~2.9; use @FT_DRIVER_H instead.
*
*/
#define FT_CFF_DRIVER_H FT_DRIVER_H
/**************************************************************************
*
* @macro:
* FT_TRUETYPE_DRIVER_H
*
* @description:
* A macro used in `#include` statements to name the file containing
* structures and macros related to the TrueType driver module.
*
* Deprecated since version~2.9; use @FT_DRIVER_H instead.
*
*/
#define FT_TRUETYPE_DRIVER_H FT_DRIVER_H
/**************************************************************************
*
* @macro:
* FT_PCF_DRIVER_H
*
* @description:
* A macro used in `#include` statements to name the file containing
* structures and macros related to the PCF driver module.
*
* Deprecated since version~2.9; use @FT_DRIVER_H instead.
*
*/
#define FT_PCF_DRIVER_H FT_DRIVER_H
/**************************************************************************
*
* @macro:
* FT_TYPE1_TABLES_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* types and API specific to the Type~1 format.
*
*/
#define FT_TYPE1_TABLES_H <freetype/t1tables.h>
/**************************************************************************
*
* @macro:
* FT_TRUETYPE_IDS_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* enumeration values which identify name strings, languages, encodings,
* etc. This file really contains a _large_ set of constant macro
* definitions, taken from the TrueType and OpenType specifications.
*
*/
#define FT_TRUETYPE_IDS_H <freetype/ttnameid.h>
/**************************************************************************
*
* @macro:
* FT_TRUETYPE_TABLES_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* types and API specific to the TrueType (as well as OpenType) format.
*
*/
#define FT_TRUETYPE_TABLES_H <freetype/tttables.h>
/**************************************************************************
*
* @macro:
* FT_TRUETYPE_TAGS_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* definitions of TrueType four-byte 'tags' which identify blocks in
* SFNT-based font formats (i.e., TrueType and OpenType).
*
*/
#define FT_TRUETYPE_TAGS_H <freetype/tttags.h>
/**************************************************************************
*
* @macro:
* FT_BDF_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* definitions of an API which accesses BDF-specific strings from a face.
*
*/
#define FT_BDF_H <freetype/ftbdf.h>
/**************************************************************************
*
* @macro:
* FT_CID_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* definitions of an API which access CID font information from a face.
*
*/
#define FT_CID_H <freetype/ftcid.h>
/**************************************************************************
*
* @macro:
* FT_GZIP_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* definitions of an API which supports gzip-compressed files.
*
*/
#define FT_GZIP_H <freetype/ftgzip.h>
/**************************************************************************
*
* @macro:
* FT_LZW_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* definitions of an API which supports LZW-compressed files.
*
*/
#define FT_LZW_H <freetype/ftlzw.h>
/**************************************************************************
*
* @macro:
* FT_BZIP2_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* definitions of an API which supports bzip2-compressed files.
*
*/
#define FT_BZIP2_H <freetype/ftbzip2.h>
/**************************************************************************
*
* @macro:
* FT_WINFONTS_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* definitions of an API which supports Windows FNT files.
*
*/
#define FT_WINFONTS_H <freetype/ftwinfnt.h>
/**************************************************************************
*
* @macro:
* FT_GLYPH_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* API of the optional glyph management component.
*
*/
#define FT_GLYPH_H <freetype/ftglyph.h>
/**************************************************************************
*
* @macro:
* FT_BITMAP_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* API of the optional bitmap conversion component.
*
*/
#define FT_BITMAP_H <freetype/ftbitmap.h>
/**************************************************************************
*
* @macro:
* FT_BBOX_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* API of the optional exact bounding box computation routines.
*
*/
#define FT_BBOX_H <freetype/ftbbox.h>
/**************************************************************************
*
* @macro:
* FT_CACHE_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* API of the optional FreeType~2 cache sub-system.
*
*/
#define FT_CACHE_H <freetype/ftcache.h>
/**************************************************************************
*
* @macro:
* FT_MAC_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* Macintosh-specific FreeType~2 API. The latter is used to access fonts
* embedded in resource forks.
*
* This header file must be explicitly included by client applications
* compiled on the Mac (note that the base API still works though).
*
*/
#define FT_MAC_H <freetype/ftmac.h>
/**************************************************************************
*
* @macro:
* FT_MULTIPLE_MASTERS_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* optional multiple-masters management API of FreeType~2.
*
*/
#define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h>
/**************************************************************************
*
* @macro:
* FT_SFNT_NAMES_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* optional FreeType~2 API which accesses embedded 'name' strings in
* SFNT-based font formats (i.e., TrueType and OpenType).
*
*/
#define FT_SFNT_NAMES_H <freetype/ftsnames.h>
/**************************************************************************
*
* @macro:
* FT_OPENTYPE_VALIDATE_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* optional FreeType~2 API which validates OpenType tables ('BASE',
* 'GDEF', 'GPOS', 'GSUB', 'JSTF').
*
*/
#define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h>
/**************************************************************************
*
* @macro:
* FT_GX_VALIDATE_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* optional FreeType~2 API which validates TrueTypeGX/AAT tables ('feat',
* 'mort', 'morx', 'bsln', 'just', 'kern', 'opbd', 'trak', 'prop').
*
*/
#define FT_GX_VALIDATE_H <freetype/ftgxval.h>
/**************************************************************************
*
* @macro:
* FT_PFR_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* FreeType~2 API which accesses PFR-specific data.
*
*/
#define FT_PFR_H <freetype/ftpfr.h>
/**************************************************************************
*
* @macro:
* FT_STROKER_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* FreeType~2 API which provides functions to stroke outline paths.
*/
#define FT_STROKER_H <freetype/ftstroke.h>
/**************************************************************************
*
* @macro:
* FT_SYNTHESIS_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* FreeType~2 API which performs artificial obliquing and emboldening.
*/
#define FT_SYNTHESIS_H <freetype/ftsynth.h>
/**************************************************************************
*
* @macro:
* FT_FONT_FORMATS_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* FreeType~2 API which provides functions specific to font formats.
*/
#define FT_FONT_FORMATS_H <freetype/ftfntfmt.h>
/* deprecated */
#define FT_XFREE86_H FT_FONT_FORMATS_H
/**************************************************************************
*
* @macro:
* FT_TRIGONOMETRY_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* FreeType~2 API which performs trigonometric computations (e.g.,
* cosines and arc tangents).
*/
#define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
/**************************************************************************
*
* @macro:
* FT_LCD_FILTER_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* FreeType~2 API which performs color filtering for subpixel rendering.
*/
#define FT_LCD_FILTER_H <freetype/ftlcdfil.h>
/**************************************************************************
*
* @macro:
* FT_INCREMENTAL_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* FreeType~2 API which performs incremental glyph loading.
*/
#define FT_INCREMENTAL_H <freetype/ftincrem.h>
/**************************************************************************
*
* @macro:
* FT_GASP_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* FreeType~2 API which returns entries from the TrueType GASP table.
*/
#define FT_GASP_H <freetype/ftgasp.h>
/**************************************************************************
*
* @macro:
* FT_ADVANCES_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* FreeType~2 API which returns individual and ranged glyph advances.
*/
#define FT_ADVANCES_H <freetype/ftadvanc.h>
/**************************************************************************
*
* @macro:
* FT_COLOR_H
*
* @description:
* A macro used in `#include` statements to name the file containing the
* FreeType~2 API which handles the OpenType 'CPAL' table.
*/
#define FT_COLOR_H <freetype/ftcolor.h>
/* */
/* These header files don't need to be included by the user. */
#define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
#define FT_PARAMETER_TAGS_H <freetype/ftparams.h>
/* Deprecated macros. */
#define FT_UNPATENTED_HINTING_H <freetype/ftparams.h>
#define FT_TRUETYPE_UNPATENTED_H <freetype/ftparams.h>
/* `FT_CACHE_H` is the only header file needed for the cache subsystem. */
#define FT_CACHE_IMAGE_H FT_CACHE_H
#define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H
#define FT_CACHE_CHARMAP_H FT_CACHE_H
/* The internals of the cache sub-system are no longer exposed. We */
/* default to `FT_CACHE_H` at the moment just in case, but we know */
/* of no rogue client that uses them. */
/* */
#define FT_CACHE_MANAGER_H FT_CACHE_H
#define FT_CACHE_INTERNAL_MRU_H FT_CACHE_H
#define FT_CACHE_INTERNAL_MANAGER_H FT_CACHE_H
#define FT_CACHE_INTERNAL_CACHE_H FT_CACHE_H
#define FT_CACHE_INTERNAL_GLYPH_H FT_CACHE_H
#define FT_CACHE_INTERNAL_IMAGE_H FT_CACHE_H
#define FT_CACHE_INTERNAL_SBITS_H FT_CACHE_H
/*
* Include internal headers definitions from `<internal/...>` only when
* building the library.
*/
#ifdef FT2_BUILD_LIBRARY
#define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
#include FT_INTERNAL_INTERNAL_H
#endif /* FT2_BUILD_LIBRARY */
#endif /* FTHEADER_H_ */
/* END */
================================================
FILE: Antario/LIB/freetype/freetype/config/ftmodule.h
================================================
/*
* This file registers the FreeType modules compiled into the library.
*
* If you use GNU make, this file IS NOT USED! Instead, it is created in
* the objects directory (normally `<topdir>/objs/`) based on information
* from `<topdir>/modules.cfg`.
*
* Please read `docs/INSTALL.ANY` and `docs/CUSTOMIZE` how to compile
* FreeType without GNU make.
*
*/
FT_USE_MODULE( FT_Module_Class, autofit_module_class )
FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class )
FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class )
FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class )
FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class )
FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class )
FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class )
FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class )
FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class )
FT_USE_MODULE( FT_Module_Class, psaux_module_class )
FT_USE_MODULE( FT_Module_Class, psnames_module_class )
FT_USE_MODULE( FT_Module_Class, pshinter_module_class )
FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class )
FT_USE_MODULE( FT_Module_Class, sfnt_module_class )
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class )
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class )
FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class )
/* EOF */
================================================
FILE: Antario/LIB/freetype/freetype/config/ftoption.h
================================================
/****************************************************************************
*
* ftoption.h
*
* User-selectable configuration macros (specification only).
*
* Copyright (C) 1996-2019 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FTOPTION_H_
#define FTOPTION_H_
#include <ft2build.h>
FT_BEGIN_HEADER
/**************************************************************************
*
* USER-SELECTABLE CONFIGURATION MACROS
*
* This file contains the default configuration macro definitions for a
* standard build of the FreeType library. There are three ways to use
* this file to build project-specific versions of the library:
*
* - You can modify this file by hand, but this is not recommended in
* cases where you would like to build several versions of the library
* from a single source directory.
*
* - You can put a copy of this file in your build directory, more
* precisely in `$BUILD/freetype/config/ftoption.h`, where `$BUILD` is
* the name of a directory that is included _before_ the FreeType include
* path during compilation.
*
* The default FreeType Makefiles and Jamfiles use the build directory
* `builds/<system>` by default, but you can easily change that for your
* own projects.
*
* - Copy the file <ft2build.h> to `$BUILD/ft2build.h` and modify it
* slightly to pre-define the macro `FT_CONFIG_OPTIONS_H` used to locate
* this file during the build. For example,
*
* ```
* #define FT_CONFIG_OPTIONS_H <myftoptions.h>
* #include <freetype/config/ftheader.h>
* ```
*
* will use `$BUILD/myftoptions.h` instead of this file for macro
* definitions.
*
* Note also that you can similarly pre-define the macro
* `FT_CONFIG_MODULES_H` used to locate the file listing of the modules
* that are statically linked to the library at compile time. By
* default, this file is `<freetype/config/ftmodule.h>`.
*
* We highly recommend using the third method whenever possible.
*
*/
/*************************************************************************/
/*************************************************************************/
/**** ****/
/**** G E N E R A L F R E E T Y P E 2 C O N F I G U R A T I O N ****/
/**** ****/
/*************************************************************************/
/*************************************************************************/
/*#************************************************************************
*
* If you enable this configuration option, FreeType recognizes an
* environment variable called `FREETYPE_PROPERTIES`, which can be used to
* control the various font drivers and modules. The controllable
* properties are listed in the section @properties.
*
* You have to undefine this configuration option on platforms that lack
* the concept of environment variables (and thus don't have the `getenv`
* function), for example Windows CE.
*
* `FREETYPE_PROPERTIES` has the following syntax form (broken here into
* multiple lines for better readability).
*
* ```
* <optional whitespace>
* <module-name1> ':'
* <property-name1> '=' <property-value1>
* <whitespace>
* <module-name2> ':'
* <property-name2> '=' <property-value2>
* ...
* ```
*
* Example:
*
* ```
* FREETYPE_PROPERTIES=truetype:interpreter-version=35 \
* cff:no-stem-darkening=1 \
* autofitter:warping=1
* ```
*
*/
#define FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
/**************************************************************************
*
* Uncomment the line below if you want to activate LCD rendering
* technology similar to ClearType in this build of the library. This
* technology triples the resolution in the direction color subpixels. To
* mitigate color fringes inherent to this technology, you also need to
* explicitly set up LCD filtering.
*
* Note that this feature is covered by several Microsoft patents and
* should not be activated in any default build of the library. When this
* macro is not defined, FreeType offers alternative LCD rendering
* technology that produces excellent output without LCD filtering.
*/
/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
/**************************************************************************
*
* Many compilers provide a non-ANSI 64-bit data type that can be used by
* FreeType to speed up some computations. However, this will create some
* problems when compiling the library in strict ANSI mode.
*
* For this reason, the use of 64-bit integers is normally disabled when
* the `__STDC__` macro is defined. You can however disable this by
* defining the macro `FT_CONFIG_OPTION_FORCE_INT64` here.
*
* For most compilers, this will only create compilation warnings when
* building the library.
*
* ObNote: The compiler-specific 64-bit integers are detected in the
* file `ftconfig.h` either statically or through the `configure`
* script on supported platforms.
*/
#undef FT_CONFIG_OPTION_FORCE_INT64
/**************************************************************************
*
* If this macro is defined, do not try to use an assembler version of
* performance-critical functions (e.g., @FT_MulFix). You should only do
* that to verify that the assembler function works properly, or to execute
* benchmark tests of the various implementations.
*/
/* #define FT_CONFIG_OPTION_NO_ASSEMBLER */
/**************************************************************************
*
* If this macro is defined, try to use an inlined assembler version of the
* @FT_MulFix function, which is a 'hotspot' when loading and hinting
* glyphs, and which should be executed as fast as possible.
*
* Note that if your compiler or CPU is not supported, this will default to
* the standard and portable implementation found in `ftcalc.c`.
*/
#define FT_CONFIG_OPTION_INLINE_MULFIX
/**************************************************************************
*
* LZW-compressed file support.
*
* FreeType now handles font files that have been compressed with the
* `compress` program. This is mostly used to parse many of the PCF
* files that come with various X11 distributions. The implementation
* uses NetBSD's `zopen` to partially uncompress the file on the fly (see
* `src/lzw/ftgzip.c`).
*
* Define this macro if you want to enable this 'feature'.
*/
#define FT_CONFIG_OPTION_USE_LZW
/**************************************************************************
*
* Gzip-compressed file support.
*
* FreeType now handles font files that have been compressed with the
* `gzip` program. This is mostly used to parse many of the PCF files
* that come with XFree86. The implementation uses 'zlib' to partially
* uncompress the file on the fly (see `src/gzip/ftgzip.c`).
*
* Define this macro if you want to enable this 'feature'. See also the
* macro `FT_CONFIG_OPTION_SYSTEM_ZLIB` below.
*/
#define FT_CONFIG_OPTION_USE_ZLIB
/**************************************************************************
*
* ZLib library selection
*
* This macro is only used when `FT_CONFIG_OPTION_USE_ZLIB` is defined.
* It allows FreeType's 'ftgzip' component to link to the system's
* installation of the ZLib library. This is useful on systems like
* Unix or VMS where it generally is already available.
*
* If you let it undefined, the component will use its own copy of the
* zlib sources instead. These have been modified to be included
* directly within the component and **not** export external function
* names. This allows you to link any program with FreeType _and_ ZLib
* without linking conflicts.
*
* Do not `#undef` this macro here since the build system might define
* it for certain configurations only.
*
* If you use a build system like cmake or the `configure` script,
* options set by those programs have precedence, overwriting the value
* here with the configured one.
*/
/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */
/**************************************************************************
*
* Bzip2-compressed file support.
*
* FreeType now handles font files that have been compressed with the
* `bzip2` program. This is mostly used to parse many of the PCF files
* that come with XFree86. The implementation uses `libbz2` to partially
* uncompress the file on the fly (see `src/bzip2/ftbzip2.c`). Contrary
* to gzip, bzip2 currently is not included and need to use the system
* available bzip2 implementation.
*
* Define this macro if you want to enable this 'feature'.
*
* If you use a build system like cmake or the `configure` script,
* options set by those programs have precedence, overwriting the value
* here with the configured one.
*/
/* #define FT_CONFIG_OPTION_USE_BZIP2 */
/**************************************************************************
*
* Define to disable the use of file stream functions and types, `FILE`,
* `fopen`, etc. Enables the use of smaller system libraries on embedded
* systems that have multiple system libraries, some with or without file
* stream support, in the cases where file stream support is not necessary
* such as memory loading of font files.
*/
/* #define FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT */
/**************************************************************************
*
* PNG bitmap support.
*
* FreeType now handles loading color bitmap glyphs in the PNG format.
* This requires help from the external libpng library. Uncompressed
* color bitmaps do not need any external libraries and will be supported
* regardless of this configuration.
*
* Define this macro if you want to enable this 'feature'.
*
* If you use a build system like cmake or the `configure` script,
* options set by those programs have precedence, overwriting the value
* here with the configured one.
*/
/* #define FT_CONFIG_OPTION_USE_PNG */
/**************************************************************************
*
* HarfBuzz support.
*
* FreeType uses the HarfBuzz library to improve auto-hinting of OpenType
* fonts. If available, many glyphs not directly addressable by a font's
* character map will be hinted also.
*
* Define this macro if you want to enable this 'feature'.
*
* If you use a build system like cmake or the `configure` script,
* options set by those programs have precedence, overwriting the value
* here with the configured one.
*/
/* #define FT_CONFIG_OPTION_USE_HARFBUZZ */
/**************************************************************************
*
* Glyph Postscript Names handling
*
* By default, FreeType 2 is compiled with the 'psnames' module. This
* module is in charge of converting a glyph name string into a Unicode
* value, or return a Macintosh standard glyph name for the use with the
* TrueType 'post' table.
*
* Undefine this macro if you do not want 'psnames' compiled in your
* build of FreeType. This has the following effects:
*
* - The TrueType driver will provide its own set of glyph names, if you
* build it to support postscript names in the TrueType 'post' table,
* but will not synthesize a missing Unicode charmap.
*
* - The Type~1 driver will not be able to synthesize a Unicode charmap
* out of the glyphs found in the fonts.
*
* You would normally undefine this configuration macro when building a
* version of FreeType that doesn't contain a Type~1 or CFF driver.
*/
#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES
/**************************************************************************
*
* Postscript Names to Unicode Values support
*
* By default, FreeType~2 is built with the 'psnames' module compiled in.
* Among other things, the module is used to convert a glyph name into a
* Unicode value. This is especially useful in order to synthesize on
* the fly a Unicode charmap from the CFF/Type~1 driver through a big
* table named the 'Adobe Glyph List' (AGL).
*
* Undefine this macro if you do not want the Adobe Glyph List compiled
* in your 'psnames' module. The Type~1 driver will not be able to
* synthesize a Unicode charmap out of the glyphs found in the fonts.
*/
#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
/**************************************************************************
*
* Support for Mac fonts
*
* Define this macro if you want support for outline fonts in Mac format
* (mac dfont, mac resource, macbinary containing a mac resource) on
* non-Mac platforms.
*
* Note that the 'FOND' resource isn't checked.
*/
#define FT_CONFIG_OPTION_MAC_FONTS
/**************************************************************************
*
* Guessing methods to access embedded resource forks
*
* Enable extra Mac fonts support on non-Mac platforms (e.g., GNU/Linux).
*
* Resource forks which include fonts data are stored sometimes in
* locations which users or developers don't expected. In some cases,
* resource forks start with some offset from the head of a file. In
* other cases, the actual resource fork is stored in file different from
* what the user specifies. If this option is activated, FreeType tries
* to guess whether such offsets or different file names must be used.
*
* Note that normal, direct access of resource forks is controlled via
* the `FT_CONFIG_OPTION_MAC_FONTS` option.
*/
#ifdef FT_CONFIG_OPTION_MAC_FONTS
#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
#endif
/**************************************************************************
*
* Allow the use of `FT_Incremental_Interface` to load typefaces that
* contain no glyph data, but supply it via a callback function. This is
* required by clients supporting document formats which supply font data
* incrementally as the document is parsed, such as the Ghostscript
* interpreter for the PostScript language.
*/
#define FT_CONFIG_OPTION_INCREMENTAL
/**************************************************************************
*
* The size in bytes of the render pool used by the scan-line converter to
* do all of its work.
*/
#define FT_RENDER_POOL_SIZE 16384L
/**************************************************************************
*
* FT_MAX_MODULES
*
* The maximum number of modules that can be registered in a single
* FreeType library object. 32~is the default.
*/
#define FT_MAX_MODULES 32
/**************************************************************************
*
* Debug level
*
* FreeType can be compiled in debug or trace mode. In debug mode,
* errors are reported through the 'ftdebug' component. In trace mode,
* additional messages are sent to the standard output during execution.
*
* Define `FT_DEBUG_LEVEL_ERROR` to build the library in debug mode.
* Define `FT_DEBUG_LEVEL_TRACE` to build it in trace mode.
*
* Don't define any of these macros to compile in 'release' mode!
*
* Do not `#undef` these macros here since the build system might define
* them for certain configurations only.
*/
/* #define FT_DEBUG_LEVEL_ERROR */
/* #define FT_DEBUG_LEVEL_TRACE */
/**************************************************************************
*
* Autofitter debugging
*
* If `FT_DEBUG_AUTOFIT` is defined, FreeType provides some means to
* control the autofitter behaviour for debugging purposes with global
* boolean variables (consequently, you should **never** enable this
* while compiling in 'release' mode):
*
* ```
* _af_debug_disable_horz_hints
* _af_debug_disable_vert_hints
* _af_debug_disable_blue_hints
* ```
*
* Additionally, the following functions provide dumps of various
* internal autofit structures to stdout (using `printf`):
*
* ```
* af_glyph_hints_dump_points
* af_glyph_hints_dump_segments
* af_glyph_hints_dump_edges
* af_glyph_hints_get_num_segments
* af_glyph_hints_get_segment_offset
* ```
*
* As an argument, they use another global variable:
*
* ```
* _af_debug_hints
* ```
*
* Please have a look at the `ftgrid` demo program to see how those
* variables and macros should be used.
*
* Do not `#undef` these macros here since the build system might define
* them for certain configurations only.
*/
/* #define FT_DEBUG_AUTOFIT */
/**************************************************************************
*
* Memory Debugging
*
* FreeType now comes with an integrated memory debugger that is capable
* of detecting simple errors like memory leaks or double deletes. To
* compile it within your build of the library, you should define
* `FT_DEBUG_MEMORY` here.
*
* Note that the memory debugger is only activated at runtime when when
* the _environment_ variable `FT2_DEBUG_MEMORY` is defined also!
*
* Do not `#undef` this macro here since the build system might define it
* for certain configurations only.
*/
/* #define FT_DEBUG_MEMORY */
/**************************************************************************
*
* Module errors
*
* If this macro is set (which is _not_ the default), the higher byte of
* an error code gives the module in which the error has occurred, while
* the lower byte is the real error code.
*
* Setting this macro makes sense for debugging purposes only, since it
* would break source compatibility of certain programs that use
* FreeType~2.
*
* More details can be found in the files `ftmoderr.h` and `fterrors.h`.
*/
#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS
/**************************************************************************
*
* Error Strings
*
* If this macro is set, `FT_Error_String` will return meaningful
* descriptions. This is not enabled by default to reduce the overall
* size of FreeType.
*
* More details can be found in the file `fterrors.h`.
*/
/* #define FT_CONFIG_OPTION_ERROR_STRINGS */
/*************************************************************************/
/*************************************************************************/
/**** ****/
/**** S F N T D R I V E R C O N F I G U R A T I O N ****/
/**** ****/
/*************************************************************************/
/*************************************************************************/
/**************************************************************************
*
* Define `TT_CONFIG_OPTION_EMBEDDED_BITMAPS` if you want to support
* embedded bitmaps in all formats using the 'sfnt' module (namely
* TrueType~& OpenType).
*/
#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS
/**************************************************************************
*
* Define `TT_CONFIG_OPTION_COLOR_LAYERS` if you want to support coloured
* outlines (from the 'COLR'/'CPAL' tables) in all formats using the 'sfnt'
* module (namely TrueType~& OpenType).
*/
#define TT_CONFIG_OPTION_COLOR_LAYERS
/**************************************************************************
*
* Define `TT_CONFIG_OPTION_POSTSCRIPT_NAMES` if you want to be able to
* load and enumerate the glyph Postscript names in a TrueType or OpenType
* file.
*
* Note that when you do not compile the 'psnames' module by undefining the
* above `FT_CONFIG_OPTION_POSTSCRIPT_NAMES`, the 'sfnt' module will
* contain additional code used to read the PS Names table from a font.
*
* (By default, the module uses 'psnames' to extract glyph names.)
*/
#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES
/**************************************************************************
*
* Define `TT_CONFIG_OPTION_SFNT_NAMES` if your applications need to access
* the internal name table in a SFNT-based format like TrueType or
* OpenType. The name table contains various strings used to describe the
* font, like family name, copyright, version, etc. It does not contain
* any glyph name though.
*
* Accessing SFNT names is done through the functions declared in
* `ftsnames.h`.
*/
#define TT_CONFIG_OPTION_SFNT_NAMES
/**************************************************************************
*
* TrueType CMap support
*
* Here you can fine-tune which TrueType CMap table format shall be
* supported.
*/
#define TT_CONFIG_CMAP_FORMAT_0
#define TT_CONFIG_CMAP_FORMAT_2
#define TT_CONFIG_CMAP_FORMAT_4
#define TT_CONFIG_CMAP_FORMAT_6
#define TT_CONFIG_CMAP_FORMAT_8
#define TT_CONFIG_CMAP_FORMAT_10
#define TT_CONFIG_CMAP_FORMAT_12
#define TT_CONFIG_CMAP_FORMAT_13
#define TT_CONFIG_CMAP_FORMAT_14
/*************************************************************************/
/*************************************************************************/
/**** ****/
/**** T R U E T Y P E D R I V E R C O N F I G U R A T I O N ****/
/**** ****/
/*************************************************************************/
/*************************************************************************/
/**************************************************************************
*
* Define `TT_CONFIG_OPTION_BYTECODE_INTERPRETER` if you want to compile a
* bytecode interpreter in the TrueType driver.
*
* By undefining this, you will only compile the code necessary to load
* TrueType glyphs without hinting.
*
* Do not `#undef` this macro here, since the build system might define it
* for certain configurations only.
*/
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
/**************************************************************************
*
* Define `TT_CONFIG_OPTION_SUBPIXEL_HINTING` if you want to compile
* subpixel hinting support into the TrueType driver. This modifies the
* TrueType hinting mechanism when anything but `FT_RENDER_MODE_MONO` is
* requested.
*
* In particular, it modifies the bytecode interpreter to interpret (or
* not) instructions in a certain way so that all TrueType fonts look like
* they do in a Windows ClearType (DirectWrite) environment. See [1] for a
* technical overview on what this means. See `ttinterp.h` for more
* details on the LEAN option.
*
* There are three possible values.
*
* Value 1:
* This value is associated with the 'Infinality' moniker, contributed by
* an individual nicknamed Infinality with the goal of making TrueType
* fonts render better than on Windows. A high amount of configurability
* and flexibility, down to rules for single glyphs in fonts, but also
* very slow. Its experimental and slow nature and the original
* developer losing interest meant that this option was never enabled in
* default builds.
*
* The corresponding interpreter version is v38.
*
* Value 2:
* The new default mode for the TrueType driver. The Infinality code
* base was stripped to the bare minimum and all configurability removed
* in the name of speed and simplicity. The configurability was mainly
* aimed at legacy fonts like 'Arial', 'Times New Roman', or 'Courier'.
* Legacy fonts are fonts that modify vertical stems to achieve clean
* black-and-white bitmaps. The new mode focuses on applying a minimal
* set of rules to all fonts indiscriminately so that modern and web
* fonts render well while legacy fonts render okay.
*
* The corresponding interpreter version is v40.
*
* Value 3:
* Compile both, making both v38 and v40 available (the latter is the
* default).
*
* By undefining these, you get rendering behavior like on Windows without
* ClearType, i.e., Windows XP without ClearType enabled and Win9x
* (interpreter version v35). Or not, depending on how much hinting blood
* and testing tears the font designer put into a given font. If you
* define one or both subpixel hinting options, you can switch between
* between v35 and the ones you define (using `FT_Property_Set`).
*
* This option requires `TT_CONFIG_OPTION_BYTECODE_INTERPRETER` to be
* defined.
*
* [1]
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
*/
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 1 */
#define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING ( 1 | 2 ) */
/**************************************************************************
*
* Define `TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED` to compile the
* TrueType glyph loader to use Apple's definition of how to handle
* component offsets in composite glyphs.
*
* Apple and MS disagree on the default behavior of component offsets in
* composites. Apple says that they should be scaled by the scaling
* factors in the transformation matrix (roughly, it's more complex) while
* MS says they should not. OpenType defines two bits in the composite
* flags array which can be used to disambiguate, but old fonts will not
* have them.
*
* https://www.microsoft.com/typography/otspec/glyf.htm
* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html
*/
#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
/**************************************************************************
*
* Define `TT_CONFIG_OPTION_GX_VAR_SUPPORT` if you want to include support
* for Apple's distortable font technology ('fvar', 'gvar', 'cvar', and
* 'avar' tables). Tagged 'Font Variations', this is now part of OpenType
* also. This has many similarities to Type~1 Multiple Masters support.
*/
#define TT_CONFIG_OPTION_GX_VAR_SUPPORT
/**************************************************************************
*
* Define `TT_CONFIG_OPTION_BDF` if you want to include support for an
* embedded 'BDF~' table within SFNT-based bitmap formats.
*/
#define TT_CONFIG_OPTION_BDF
/**************************************************************************
*
* Option `TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES` controls the maximum
* number of bytecode instructions executed for a single run of the
* bytecode interpreter, needed to prevent infinite loops. You don't want
* to change this except for very special situations (e.g., making a
* library fuzzer spend less time to handle broken fonts).
*
* It is not expected that this value is ever modified by a configuring
* script; instead, it gets surrounded with `#ifndef ... #endif` so that
* the value can be set as a preprocessor option on the compiler's command
* line.
*/
#ifndef TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES
#define TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES 1000000L
#endif
/*************************************************************************/
/*************************************************************************/
/**** ****/
/**** T Y P E 1 D R I V E R C O N F I G U R A T I O N ****/
/**** ****/
/*************************************************************************/
/*************************************************************************/
/**************************************************************************
*
* `T1_MAX_DICT_DEPTH` is the maximum depth of nest dictionaries and arrays
* in the Type~1 stream (see `t1load.c`). A minimum of~4 is required.
*/
#define T1_MAX_DICT_DEPTH 5
/**************************************************************************
*
* `T1_MAX_SUBRS_CALLS` details the maximum number of nested sub-routine
* calls during glyph loading.
*/
#define T1_MAX_SUBRS_CALLS 16
/**************************************************************************
*
* `T1_MAX_CHARSTRING_OPERANDS` is the charstring stack's capacity. A
* minimum of~16 is required.
*
* The Chinese font 'MingTiEG-Medium' (covering the CNS 11643 character
* set) needs 256.
*/
#define T1_MAX_CHARSTRINGS_OPERANDS 256
/**************************************************************************
*
* Define this configuration macro if you want to prevent the compilation
* of the 't1afm' module, which is in charge of reading Type~1 AFM files
* into an existing face. Note that if set, the Type~1 driver will be
* unable to produce kerning distances.
*/
#undef T1_CONFIG_OPTION_NO_AFM
/**************************************************************************
*
* Define this configuration macro if you want to prevent the compilation
* of the Multiple Masters font support in the Type~1 driver.
*/
#undef T1_CONFIG_OPTION_NO_MM_SUPPORT
/**************************************************************************
*
* `T1_CONFIG_OPTION_OLD_ENGINE` controls whether the pre-Adobe Type~1
* engine gets compiled into FreeType. If defined, it is possible to
* switch between the two engines using the `hinting-engine` property of
* the 'type1' driver module.
*/
/* #define T1_CONFIG_OPTION_OLD_ENGINE */
/*************************************************************************/
/*************************************************************************/
/**** ****/
/**** C F F D R I V E R C O N F I G U R A T I O N ****/
/**** ****/
/*************************************************************************/
/*************************************************************************/
/**************************************************************************
*
* Using `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}` it is
* possible to set up the default values of the four control points that
* define the stem darkening behaviour of the (new) CFF engine. For more
* details please read the documentation of the `darkening-parameters`
* property (file `ftdriver.h`), which allows the control at run-time.
*
* Do **not** undefine these macros!
*/
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 500
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 400
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 1000
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 275
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 1667
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 275
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 2333
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 0
/**************************************************************************
*
* `CFF_CONFIG_OPTION_OLD_ENGINE` controls whether the pre-Adobe CFF engine
* gets compiled into FreeType. If defined, it is possible to switch
* between the two engines using the `hinting-engine` property of the 'cff'
* driver module.
*/
/* #define CFF_CONFIG_OPTION_OLD_ENGINE */
/*************************************************************************/
/*************************************************************************/
/**** ****/
/**** P C F D R I V E R C O N F I G U R A T I O N ****/
/**** ****/
/*************************************************************************/
/*************************************************************************/
/**************************************************************************
*
* There are many PCF fonts just called 'Fixed' which look completely
* different, and which have nothing to do with each other. When selecting
* 'Fixed' in KDE or Gnome one gets results that appear rather random, the
* style changes often if one changes the size and one cannot select some
* fonts at all. This option makes the 'pcf' module prepend the foundry
* name (plus a space) to the family name.
*
* We also check whether we have 'wide' characters; all put together, we
* get family names like 'Sony Fixed' or 'Misc Fixed Wide'.
*
* If this option is activated, it can be controlled with the
* `no-long-family-names` property of the 'pcf' driver module.
*/
/* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */
/*************************************************************************/
/*************************************************************************/
/**** ****/
/**** A U T O F I T M O D U L E C O N F I G U R A T I O N ****/
/**** ****/
/*************************************************************************/
/*************************************************************************/
/**************************************************************************
*
* Compile 'autofit' module with CJK (Chinese, Japanese, Korean) script
* support.
*/
#define AF_CONFIG_OPTION_CJK
/**************************************************************************
*
* Compile 'autofit' module with fallback Indic script support, covering
* some scripts that the 'latin' submodule of the 'autofit' module doesn't
* (yet) handle.
*/
#define AF_CONFIG_OPTION_INDIC
/**************************************************************************
*
* Compile 'autofit' module with warp hinting. The idea of the warping
* code is to slightly scale and shift a glyph within a single dimension so
* that as much of its segments are aligned (more or less) on the grid. To
* find out the optimal scaling and shifting value, various parameter
* combinations are tried and scored.
*
* You can switch warping on and off with the `warping` property of the
* auto-hinter (see file `ftdriver.h` for more information; by default it
* is switched off).
*
* This experimental option is not active if the rendering mode is
* `FT_RENDER_MODE_LIGHT`.
*/
#define AF_CONFIG_OPTION_USE_WARPER
/**************************************************************************
*
* Use TrueType-like size metrics for 'light' auto-hinting.
*
* It is strongly recommended to avoid this option, which exists only to
* help some legacy applications retain its appearance and behaviour with
* respect to auto-hinted TrueType fonts.
*
* The very reason this option exists at all are GNU/Linux distributions
* like Fedora that did not un-patch the following change (which was
* present in FreeType between versions 2.4.6 and 2.7.1, inclusive).
*
* ```
* 2011-07-16 Steven Chu <steven.f.chu@gmail.com>
*
* [truetype] Fix metrics on size request for scalable fonts.
* ```
*
* This problematic commit is now reverted (more or less).
*/
/* #define AF_CONFIG_OPTION_TT_SIZE_METRICS */
/* */
/*
* This macro is obsolete. Support has been removed in FreeType version
* 2.5.
*/
/* #define FT_CONFIG_OPTION_OLD_INTERNALS */
/*
* The next three macros are defined if native TrueType hinting is
* requested by the definitions above. Don't change this.
*/
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
#define TT_USE_BYTECODE_INTERPRETER
#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 1
#define TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
#endif
#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 2
#define TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
#endif
#endif
#endif
/*
* Check CFF darkening parameters. The checks are the same as in function
* `cff_property_set` in file `cffdrivr.c`.
*/
#if CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 < 0 || \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 < 0 || \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 < 0 || \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 < 0 || \
\
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 < 0 || \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 < 0 || \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 < 0 || \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 < 0 || \
\
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 > \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 || \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 > \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 || \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 > \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 || \
\
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 > 500 || \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 > 500 || \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 > 500 || \
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 > 500
#error "Invalid CFF darkening parameters!"
#endif
FT_END_HEADER
#endif /* FTOPTION_H_ */
/* END */
================================================
FILE: Antario/LIB/freetype/freetype/config/ftstdlib.h
================================================
/****************************************************************************
*
* ftstdlib.h
*
* ANSI-specific library and header configuration file (specification
* only).
*
* Copyright (C) 2002-2019 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
/**************************************************************************
*
* This file is used to group all `#includes` to the ANSI~C library that
* FreeType normally requires. It also defines macros to rename the
* standard functions within the FreeType source code.
*
* Load a file which defines `FTSTDLIB_H_` before this one to override it.
*
*/
#ifndef FTSTDLIB_H_
#define FTSTDLIB_H_
#include <stddef.h>
#define ft_ptrdiff_t ptrdiff_t
/**************************************************************************
*
* integer limits
*
* `UINT_MAX` and `ULONG_MAX` are used to automatically compute the size of
* `int` and `long` in bytes at compile-time. So far, this works for all
* platforms the library has been tested on.
*
* Note that on the extremely rare platforms that do not provide integer
* types that are _exactly_ 16 and 32~bits wide (e.g., some old Crays where
* `int` is 36~bits), we do not make any guarantee about the correct
* behaviour of FreeType~2 with all fonts.
*
* In these cases, `ftconfig.h` will refuse to compile anyway with a
* message like 'couldn't find 32-bit type' or something similar.
*
*/
#include <limits.h>
#define FT_CHAR_BIT CHAR_BIT
#define FT_USHORT_MAX USHRT_MAX
#define FT_INT_MAX INT_MAX
#define FT_INT_MIN INT_MIN
#define FT_UINT_MAX UINT_MAX
#define FT_LONG_MIN LONG_MIN
#define FT_LONG_MAX LONG_MAX
#define FT_ULONG_MAX ULONG_MAX
/**************************************************************************
*
* character and string processing
*
*/
#include <string.h>
#define ft_memchr memchr
#define ft_memcmp memcmp
#define ft_memcpy memcpy
#define ft_memmove memmove
#define ft_memset memset
#define ft_strcat strcat
#define ft_strcmp strcmp
#define ft_strcpy strcpy
#define ft_strlen strlen
#define ft_strncmp strncmp
#define ft_strncpy strncpy
#define ft_strrchr strrchr
#define ft_strstr strstr
/**************************************************************************
*
* file handling
*
*/
#include <stdio.h>
#define FT_FILE FILE
#define ft_fclose fclose
#define ft_fopen fopen
#define ft_fread fread
#define ft_fseek fseek
#define ft_ftell ftell
#define ft_sprintf sprintf
/**************************************************************************
*
* sorting
*
*/
#include <stdlib.h>
#define ft_qsort qsort
/**************************************************************************
*
* memory allocation
*
*/
#define ft_scalloc calloc
#define ft_sfree free
#define ft_smalloc malloc
#define ft_srealloc realloc
/**************************************************************************
*
* miscellaneous
*
*/
#define ft_strtol strtol
#define ft_getenv getenv
/**************************************************************************
*
* execution control
*
*/
#include <setjmp.h>
#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */
/* `jmp_buf` is defined as a macro */
/* on certain platforms */
#define ft_longjmp longjmp
#define ft_setjmp( b ) setjmp( *(ft_jmp_buf*) &(b) ) /* same thing here */
/* The following is only used for debugging purposes, i.e., if */
/* `FT_DEBUG_LEVEL_ERROR` or `FT_DEBUG_LEVEL_TRACE` are defined. */
#include <stdarg.h>
#endif /* FTSTDLIB_H_ */
/* END */
================================================
FILE: Antario/LIB/freetype/freetype/freetype.h
================================================
/****************************************************************************
*
* freetype.h
*
* FreeType high-level API and common types (specification only).
*
* Copyright (C) 1996-2019 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
* modified, and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify, or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
*/
#ifndef FREETYPE_H_
#define FREETYPE_H_
#ifndef FT_FREETYPE_H
#error "`ft2build.h' hasn't been included yet!"
#error "Please always use macros to include FreeType header files."
#error "Example:"
#error " #include <ft2build.h>"
#error " #include FT_FREETYPE_H"
#endif
#include <ft2build.h>
#include FT_CONFIG_CONFIG_H
#include FT_TYPES_H
#include FT_ERRORS_H
FT_BEGIN_HEADER
/**************************************************************************
*
* @section:
* header_inclusion
*
* @title:
* FreeType's header inclusion scheme
*
* @abstract:
* How client applications should include FreeType header files.
*
* @description:
* To be as flexible as possible (and for historical reasons), FreeType
* uses a very special inclusion scheme to load header files, for example
*
* ```
* #include <ft2build.h>
*
* #include FT_FREETYPE_H
* #include FT_OUTLINE_H
* ```
*
* A compiler and its preprocessor only needs an include path to find the
* file `ft2build.h`; the exact locations and names of the other FreeType
* header files are hidden by @header_file_macros, loaded by
* `ft2build.h`. The API documentation always gives the header macro
* name needed for a particular function.
*
*/
/**************************************************************************
*
* @section:
* user_allocation
*
* @title:
* User allocation
*
* @abstract:
* How client applications should allocate FreeType data structures.
*
* @description:
* FreeType assumes that structures allocated by the user and passed as
* arguments are zeroed out except for the actual data. In other words,
* it is recommended to use `calloc` (or variants of it) instead of
* `malloc` for allocation.
*
*/
/*************************************************************************/
/*************************************************************************/
/* */
/* B A S I C T Y P E S */
/* */
/*************************************************************************/
/*************************************************************************/
/**************************************************************************
*
* @section:
* base_interface
*
* @title:
* Base Interface
*
* @abstract:
* The FreeType~2 base font interface.
*
* @description:
* This section describes the most important public high-level API
* functions of FreeType~2.
*
* @order:
* FT_Library
* FT_Face
* FT_Size
* FT_GlyphSlot
* FT_CharMap
* FT_Encoding
* FT_ENC_TAG
*
* FT_FaceRec
*
* FT_FACE_FLAG_SCALABLE
* FT_FACE_FLAG_FIXED_SIZES
* FT_FACE_FLAG_FIXED_WIDTH
* FT_FACE_FLAG_HORIZONTAL
* FT_FACE_FLAG_VERTICAL
* FT_FACE_FLAG_COLOR
* FT_FACE_FLAG_SFNT
* FT_FACE_FLAG_CID_KEYED
* FT_FACE_FLAG_TRICKY
* FT_FACE_FLAG_KERNING
* FT_FACE_FLAG_MULTIPLE_MASTERS
* FT_FACE_FLAG_VARIATION
* FT_FACE_FLAG_GLYPH_NAMES
* FT_FACE_FLAG_EXTERNAL_STREAM
* FT_FACE_FLAG_HINTER
*
* FT_HAS_HORIZONTAL
* FT_HAS_VERTICAL
* FT_HAS_KERNING
* FT_HAS_FIXED_SIZES
* FT_HAS_GLYPH_NAMES
* FT_HAS_COLOR
* FT_HAS_MULTIPLE_MASTERS
*
* FT_IS_SFNT
* FT_IS_SCALABLE
* FT_IS_FIXED_WIDTH
* FT_IS_CID_KEYED
* FT_IS_TRICKY
* FT_IS_NAMED_INSTANCE
* FT_IS_VARIATION
*
* FT_STYLE_FLAG_BOLD
* FT_STYLE_FLAG_ITALIC
*
* FT_SizeRec
* FT_Size_Metrics
*
* FT_GlyphSlotRec
* FT_Glyph_Metrics
* FT_SubGlyph
*
* FT_Bitmap_Size
*
* FT_Init_FreeType
* FT_Done_FreeType
*
* FT_New_Face
* FT_Done_Face
* FT_Reference_Face
* FT_New_Memory_Face
* FT_Face_Properties
* FT_Open_Face
* FT_Open_Args
* FT_Parameter
* FT_Attach_File
* FT_Attach_Stream
*
* FT_Set_Char_Size
* FT_Set_Pixel_Sizes
* FT_Request_Size
* FT_Select_Size
* FT_Size_Request_Type
* FT_Size_RequestRec
* FT_Size_Request
* FT_Set_Transform
* FT_Load_Glyph
* FT_Get_Char_Index
* FT_Get_First_Char
* FT_Get_Next_Char
* FT_Get_Name_Index
* FT_Load_Char
*
* FT_OPEN_MEMORY
* FT_OPEN_STREAM
* FT_OPEN_PATHNAME
* FT_OPEN_DRIVER
* FT_OPEN_PARAMS
*
* FT_LOAD_DEFAULT
* FT_LOAD_RENDER
* FT_LOAD_MONOCHROME
* FT_LOAD_LINEAR_DESIGN
* FT_LOAD_NO_SCALE
* FT_LOAD_NO_HINTING
* FT_LOAD_NO_BITMAP
* FT_LOAD_NO_AUTOHINT
* FT_LOAD_COLOR
*
* FT_LOAD_VERTICAL_LAYOUT
* FT_LOAD_IGNORE_TRANSFORM
* FT_LOAD_FORCE_AUTOHINT
* FT_LOAD_NO_RECURSE
* FT_LOAD_PEDANTIC
*
* FT_LOAD_TARGET_NORMAL
* FT_LOAD_TARGET_LIGHT
* FT_LOAD_TARGET_MONO
* FT_LOAD_TARGET_LCD
* FT_LOAD_TARGET_LCD_V
*
* FT_LOAD_TARGET_MODE
*
* FT_Render_Glyph
* FT_Render_Mode
* FT_Get_Kerning
* FT_Kerning_Mode
* FT_Get_Track_Kerning
* FT_Get_Glyph_Name
* FT_Get_Postscript_Name
*
* FT_CharMapRec
* FT_Select_Charmap
* FT_Set_Charmap
* FT_Get_Charmap_Index
*
* FT_Get_FSType_Flags
* FT_Get_SubGlyph_Info
*
* FT_Face_Internal
* FT_Size_Internal
* FT_Slot_Internal
*
* FT_FACE_FLAG_XXX
* FT_STYLE_FLAG_XXX
* FT_OPEN_XXX
* FT_LOAD_XXX
* FT_LOAD_TARGET_XXX
* FT_SUBGLYPH_FLAG_XXX
* FT_FSTYPE_XXX
*
* FT_HAS_FAST_GLYPHS
*
*/
/**************************************************************************
*
* @struct:
* FT_Glyph_Metrics
*
* @description:
* A structure to model the metrics of a single glyph. The values are
* expressed in 26.6 fractional pixel format; if the flag
* @FT_LOAD_NO_SCALE has been used while loading the glyph, values are
* expressed in font units instead.
*
* @fields:
* width ::
* The glyph's width.
*
* height ::
* The glyph's height.
*
* horiBearingX ::
* Left side bearing for horizontal layout.
*
* horiBearingY ::
* Top side bearing for horizontal layout.
*
* horiAdvance ::
* Advance width for horizontal layout.
*
* vertBearingX ::
* Left side bearing for vertical layout.
*
* vertBearingY ::
* Top side bearing for vertical layout. Larger positive values mean
* further below the vertical glyph origin.
*
* vertAdvance ::
* Advance height for vertical layout. Positive values mean the glyph
* has a positive advance downward.
*
* @note:
* If not disabled with @FT_LOAD_NO_HINTING, the values represent
* dimensions of the hinted glyph (in case hinting is applicable).
*
* Stroking a glyph with an outside border does not increase
* `horiAdvance` or `vertAdvance`; you have to manually adjust these
* values to account for the added width and height.
*
* FreeType doesn't use the 'VORG' table data for CFF fonts because it
* doesn't have an interface to quickly retrieve the glyph height. The
* y~coordinate of the vertical origin can be simply computed as
* `vertBearingY + height` after loading a glyph.
*/
typedef struct FT_Glyph_Metrics_
{
FT_Pos width;
FT_Pos height;
FT_Pos horiBearingX;
FT_Pos horiBearingY;
FT_Pos horiAdvance;
FT_Pos vertBearingX;
FT_Pos vertBearingY;
FT_Pos vertAdvance;
} FT_Glyph_Metrics;
/**************************************************************************
*
* @struct:
* FT_Bitmap_Size
*
* @description:
* This structure models the metrics of a bitmap strike (i.e., a set of
* glyphs for a given point size and resolution) in a bitmap font. It is
* used for the `available_sizes` field of @FT_Face.
*
* @fields:
* height ::
* The vertical distance, in pixels, between two consecutive baselines.
* It is always positive.
*
* width ::
* The average width, in pixels, of all glyphs in the strike.
*
* size ::
* The nominal size of the strike in 26.6 fractional points. This
* field is not very useful.
*
* x_ppem ::
* The horizontal ppem (nominal width) in 26.6 fractional pixels.
*
* y_ppem ::
* The vertical ppem (nominal height) in 26.6 fractional pixels.
*
* @note:
* Windows FNT:
* The nominal size given in a FNT font is not reliable. If the driver
* finds it incorrect, it sets `size` to some calculated values, and
* `x_ppem` and `y_ppem` to the pixel width and height given in the
* font, respectively.
*
* TrueType embedded bitmaps:
* `size`, `width`, and `height` values are not contained in the bitmap
* strike itself. They are computed from the global font parameters.
*/
typedef struct FT_Bitmap_Size_
{
FT_Short height;
FT_Short width;
FT_Pos size;
FT_Pos x_ppem;
FT_Pos y_ppem;
} FT_Bitmap_Size;
/*************************************************************************/
/*************************************************************************/
/* */
/* O B J E C T C L A S S E S */
/* */
/*************************************************************************/
/*************************************************************************/
/**************************************************************************
*
* @type:
* FT_Library
*
* @description:
* A handle to a FreeType library instance. Each 'library' is completely
* independent from the others; it is the 'root' of a set of objects like
* fonts, faces, sizes, etc.
*
* It also embeds a memory manager (see @FT_Memory), as well as a
* scan-line converter object (see @FT_Raster).
*
* [Since 2.5.6] In multi-threaded applications it is easiest to use one
* `FT_Library` object per thread. In case this is too cumbersome, a
* single `FT_Library` object across threads is possible also, as long as
* a mutex lock is used around @FT_New_Face and @FT_Done_Face.
*
* @note:
* Library objects are normally created by @FT_Init_FreeType, and
* destroyed with @FT_Done_FreeType. If you need reference-counting
* (cf. @FT_Reference_Library), use @FT_New_Library and @FT_Done_Library.
*/
typedef struct FT_LibraryRec_ *FT_Library;
/**************************************************************************
*
* @section:
* module_management
*
*/
/**************************************************************************
*
* @type:
* FT_Module
*
* @description:
* A handle to a given FreeType module object. A module can be a font
* driver, a renderer, or anything else that provides services to the
* former.
*/
typedef struct FT_ModuleRec_* FT_Module;
/**************************************************************************
*
* @type:
* FT_Driver
*
* @description:
* A handle to a given FreeType font driver object. A font driver is a
* module capable of creating faces from font files.
*/
typedef struct FT_DriverRec_* FT_Driver;
/**************************************************************************
*
* @type:
* FT_Renderer
*
* @description:
* A handle to a given FreeType renderer. A renderer is a module in
* charge of converting a glyph's outline image to a bitmap. It supports
* a single glyph image format, and one or more target surface depths.
*/
typedef struct FT_RendererRec_* FT_Renderer;
/**************************************************************************
*
* @section:
* base_interface
*
*/
/**************************************************************************
*
* @type:
* FT_Face
*
* @description:
* A handle to a typographic face object. A face object models a given
* typeface, in a given style.
*
* @note:
* A face object also owns a single @FT_GlyphSlot object, as well as one
* or more @FT_Size objects.
*
* Use @FT_New_Face or @FT_Open_Face to create a new face object from a
* given filepath or a custom input stream.
*
* Use @FT_Done_Face to destroy it (along with its slot and sizes).
*
* An `FT_Face` object can only be safely used from one thread at a time.
* Similarly, creation and destruction of `FT_Face` with the same
* @FT_Library object can only be done from one thread at a time. On the
* other hand, functions like @FT_Load_Glyph and its siblings are
* thread-safe and do not need the lock to be held as long as the same
* `FT_Face` object is not used from multiple threads at the same time.
*
* @also:
* See @FT_FaceRec for the publicly accessible fields of a given face
* object.
*/
typedef struct FT_FaceRec_* FT_Face;
/**************************************************************************
*
* @type:
* FT_Size
*
* @description:
* A handle to an object that models a face scaled to a given character
* size.
*
* @note:
* An @FT_Face has one _active_ @FT_Size object that is used by functions
* like @FT_Load_Glyph to determine the scaling transformation that in
* turn is used to load and hint glyphs and metrics.
*
* You can use @FT_Set_Char_Size, @FT_Set_Pixel_Sizes, @FT_Request_Size
* or even @FT_Select_Size to change the content (i.e., the scaling
* values) of the active @FT_Size.
*
* You can use @FT_New_Size to create additional size objects for a given
* @FT_Face, but they won't be used by other functions until you activate
* it through @FT_Activate_Size. Only one size can be activated at any
* given time per face.
*
* @also:
* See @FT_SizeRec for the publicly accessible fields of a given size
* object.
*/
typedef struct FT_SizeRec_* FT_Size;
/**************************************************************************
*
* @type:
* FT_GlyphSlot
*
* @description:
* A handle to a given 'glyph slot'. A slot is a container that can hold
* any of the glyphs contained in its parent face.
*
* In other words, each time you call @FT_Load_Glyph or @FT_Load_Char,
* the slot's content is erased by the new glyph data, i.e., the glyph's
* metrics, its image (bitmap or outline), and other control information.
*
* @also:
* See @FT_GlyphSlotRec for the publicly accessible glyph fields.
*/
typedef struct FT_GlyphSlotRec_* FT_GlyphSlot;
/**************************************************************************
*
* @type:
* FT_CharMap
*
* @description:
* A handle to a character map (usually abbreviated to 'charmap'). A
* charmap is used to translate character codes in a given encoding into
* glyph indexes for its parent's face. Some font formats may provide
* several charmaps per font.
*
* Each face object owns zero or more charmaps, but only one of them can
* be 'active', providing the data used by @FT_Get_Char_Index or
* @FT_Load_Char.
*
* The list of available charmaps in a face is available through the
* `face->num_charmaps` and `face->charmaps` fields of @FT_FaceRec.
*
* The currently active charmap is available as `face->charmap`. You
* should call @FT_Set_Charmap to change it.
*
* @note:
* When a new face is created (either through @FT_New_Face or
* @FT_Open_Face), the library looks for a Unicode charmap within the
* list and automatically activates it. If there is no Unicode charmap,
* FreeType doesn't set an 'active' charmap.
*
* @also:
* See @FT_CharMapRec for the publicly accessible fields of a given
* character map.
*/
typedef struct FT_CharMapRec_* FT_CharMap;
/**************************************************************************
*
* @macro:
* FT_ENC_TAG
*
* @description:
* This macro converts four-letter tags into an unsigned long. It is
* used to define 'encoding' identifiers (see @FT_Encoding).
*
* @note:
* Since many 16-bit compilers don't like 32-bit enumerations, you should
* redefine this macro in case of problems to something like this:
*
* ```
* #define FT_ENC_TAG( value, a, b, c, d ) value
* ```
*
* to get a simple enumeration without assigning special numbers.
*/
#ifndef FT_ENC_TAG
#define FT_ENC_TAG( value, a, b, c, d ) \
value = ( ( (FT_UInt32)(a) << 24 ) | \
( (FT_UInt32)(b) << 16 ) | \
( (FT_UInt32)(c) << 8 ) | \
(FT_UInt32)(d) )
#endif /* FT_ENC_TAG */
/**************************************************************************
*
* @enum:
* FT_Encoding
*
* @description:
* An enumeration to specify character sets supported by charmaps. Used
* in the @FT_Select_Charmap API function.
*
* @note:
* Despite the name, this enumeration lists specific character
* repertories (i.e., charsets), and not text encoding methods (e.g.,
* UTF-8, UTF-16, etc.).
*
* Other encodings might be defined in the future.
*
* @values:
* FT_ENCODING_NONE ::
* The encoding value~0 is reserved for all formats except BDF, PCF,
* and Windows FNT; see below for more information.
*
* FT_ENCODING_UNICODE ::
* The Unicode character set. This value covers all versions of the
* Unicode repertoire, including ASCII and Latin-1. Most fonts include
* a Unicode charmap, but not all of them.
*
* For example, if you want to access Unicode value U+1F028 (and the
* font contains it), use value 0x1F028 as the input value for
* @FT_Get_Char_Index.
*
* FT_ENCODING_MS_SYMBOL ::
* Microsoft Symbol encoding, used to encode mathematical symbols and
* wingdings. For more information, see
* 'https://www.microsoft.com/typography/otspec/recom.htm',
* 'http://www.kostis.net/charsets/symbol.htm', and
* 'http://www.kostis.net/charsets/wingding.htm'.
*
* This encoding uses character codes from the PUA (Private Unicode
* Area) in the range U+F020-U+F0FF.
*
* FT_ENCODING_SJIS ::
* Shift JIS encoding for Japanese. More info at
* 'https://en.wikipedia.org/wiki/Shift_JIS'. See note on multi-byte
* encodings below.
*
* FT_ENCODING_PRC ::
* Corresponds to encoding systems mainly for Simplified Chinese as
* used in People's Republic of China (PRC). The encoding layout is
* based on GB~2312 and its supersets GBK and GB~18030.
*
* FT_ENCODING_BIG5 ::
* Corresponds to an encoding system for Traditional Chinese as used in
* Taiwan and Hong Kong.
*
* FT_ENCODING_WANSUNG ::
* Corresponds to the Korean encoding system known as Extended Wansung
* (MS Windows code page 949). For more information see
* 'https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit949.txt'.
*
* FT_ENCODING_JOHAB ::
* The Korean standard character set (KS~C 5601-1992), which
* corresponds to MS Windows code page 1361. This character set
* includes all possible Hangul character combinations.
*
* FT_ENCODING_ADOBE_LATIN_1 ::
* Corresponds to a Latin-1 encoding as defined in a Type~1 PostScript
* font. It is limited to 256 character codes.
*
* FT_ENCODING_ADOBE_STANDARD ::
* Adobe Standard encoding, as found in Type~1, CFF, and OpenType/CFF
* fonts. It is limited to 256 character codes.
*
* FT_ENCODING_ADOBE_EXPERT ::
* Adobe Expert encoding, as found in Type~1, CFF, and OpenType/CFF
* fonts. It is limited to 256 character codes.
*
* FT_ENCODING_ADOBE_CUSTOM ::
* Corresponds to a custom encoding, as found in Type~1, CFF, and
* OpenType/CFF fonts. It is limited to 256 character codes.
*
* FT_ENCODING_APPLE_ROMAN ::
* Apple roman encoding. Many TrueType and OpenType fonts contain a
* charmap for this 8-bit encoding, since older versions of Mac OS are
* able to use it.
*
* FT_ENCODING_OLD_LATIN_2 ::
* This value is deprecated and was neither used nor reported by
* FreeType. Don't use or test for it.
*
* FT_ENCODING_MS_SJIS ::
* Same as FT_ENCODING_SJIS. Deprecated.
*
* FT_ENCODING_MS_GB2312 ::
* Same as FT_ENCODING_PRC. Deprecated.
*
* FT_ENCODING_MS_BIG5 ::
* Same as FT_ENCODING_BIG5. Deprecated.
*
* FT_ENCODING_MS_WANSUNG ::
* Same as FT_ENCODING_WANSUNG. Deprecated.
*
* FT_ENCODING_MS_JOHAB ::
* Same as FT_ENCODING_JOHAB. Deprecated.
*
* @note:
* By default, FreeType enables a Unicode charmap and tags it with
* `FT_ENCODING_UNICODE` when it is either provided or can be generated
* from PostScript glyph name dictionaries in the font file. All other
* encodings are considered legacy and tagged only if explicitly defined
* in the font file. Otherwise, `FT_ENCODING_NONE` is used.
*
* `FT_ENCODING_NONE` is set by the BDF and PCF drivers if the charmap is
* neither Unicode nor ISO-8859-1 (otherwise it is set to
* `FT_ENCODING_UNICODE`). Use @FT_Get_BDF_Charset_ID to find out which
* encoding is really present. If, for example, the `cs_registry` field
* is 'KOI8' and the `cs_encoding` field is 'R', the font is encoded in
* KOI8-R.
*
* `FT_ENCODING_NONE` is always set (with a single exception) by the
* winfonts driver. Use @FT_Get_WinFNT_Header and examine the `charset`
* field of the @FT_WinFNT_HeaderRec structure to find out which encoding
* is really present. For example, @FT_WinFNT_ID_CP1251 (204) means
* Windows code page 1251 (for Russian).
*
* `FT_ENCODING_NONE` is set if `platform_id` is @TT_PLATFORM_MACINTOSH
* and `encoding_id` is not `TT_MAC_ID_ROMAN` (otherwise it is set to
* `FT_ENCODING_APPLE_ROMAN`).
*
* If `platform_id` is @TT_PLATFORM_MACINTOSH, use the function
* @FT_Get_CMap_Language_ID to query the Mac language ID that may be
* needed to be able to distinguish Apple encoding variants. See
*
* https://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt
*
* to get an idea how to do that. Basically, if the language ID is~0,
* don't use it, otherwise subtract 1 from the language ID. Then examine
* `encoding_id`. If, for example, `encoding_id` is `TT_MAC_ID_ROMAN`
* and the language ID (minus~1) is `TT_MAC_LANGID_GREEK`, it is the
* Greek encoding, not Roman. `TT_MAC_ID_ARABIC` with
* `TT_MAC_LANGID_FARSI` means the Farsi variant the Arabic encoding.
*/
typedef enum FT_Encoding_
{
FT_ENC_TAG( FT_ENCODING_NONE, 0, 0, 0, 0 ),
FT_ENC_TAG( FT_ENCODING_MS_SYMBOL, 's', 'y', 'm', 'b' ),
FT_ENC_TAG( FT_ENCODING_UNICODE, 'u', 'n', 'i', 'c' ),
FT_ENC_TAG( FT_ENCODING_SJIS, 's', 'j', 'i', 's' ),
FT_ENC_TAG( FT_ENCODING_PRC, 'g', 'b', ' ', ' ' ),
FT_ENC_TAG( FT_ENCODING_BIG5, 'b', 'i', 'g', '5' ),
FT_ENC_TAG( FT_ENCODING_WANSUNG, 'w', 'a', 'n', 's' ),
FT_ENC_TAG( FT_ENCODING_JOHAB, 'j', 'o', 'h', 'a' ),
/* for backward compatibility */
FT_ENCODING_GB2312 = FT_ENCODING_PRC,
FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS,
FT_ENCODING_MS_GB2312 = FT_ENCODING_PRC,
FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5,
FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG,
FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB,
FT_ENC_TAG( FT_ENCODING_ADOBE_STANDARD, 'A', 'D', 'O', 'B' ),
FT_ENC_TAG( FT_ENCODING_ADOBE_EXPERT, 'A', 'D', 'B', 'E' ),
FT_ENC_TAG( FT_ENCODING_ADOBE_CUSTOM, 'A', 'D', 'B', 'C' ),
FT_ENC_TAG( FT_ENCODING_ADOBE_LATIN_1, 'l', 'a', 't', '1' ),
FT_ENC_TAG( FT_ENCODING_OLD_LATIN_2, 'l', 'a', 't', '2' ),
FT_ENC_TAG( FT_ENCODING_APPLE_ROMAN, 'a', 'r', 'm', 'n' )
} FT_Encoding;
/* these constants are deprecated; use the corresponding `FT_Encoding` */
/* values instead */
#define ft_encoding_none FT_ENCODING_NONE
#define ft_encoding_unicode FT_ENCODING_UNICODE
#define ft_encoding_symbol FT_ENCODING_MS_SYMBOL
#define ft_encoding_latin_1 FT_ENCODING_ADOBE_LATIN_1
#define ft_encoding_latin_2 FT_ENCODING_OLD_LATIN_2
#define ft_encoding_sjis FT_ENCODING_SJIS
#define ft_encoding_gb2312 FT_ENCODING_PRC
#define ft_encoding_big5 FT_ENCODING_BIG5
#define ft_encoding_wansung FT_ENCODING_WANSUNG
#define ft_encoding_johab FT_ENCODING_JOHAB
#define ft_encoding_adobe_standard FT_ENCODING_ADOBE_STANDARD
#define ft_encoding_adobe_expert FT_ENCODING_ADOBE_EXPERT
#define ft_encoding_adobe_custom FT_ENCODING_ADOBE_CUSTOM
#define ft_encoding_apple_roman FT_ENCODING_APPLE_ROMAN
/**************************************************************************
*
* @struct:
* FT_CharMapRec
*
* @description:
* The base charmap structure.
*
* @fields:
* face ::
* A handle to the parent face object.
*
* encoding ::
* An @FT_Encoding tag identifying the charmap. Use this with
* @FT_Select_Charmap.
*
* platform_id ::
* An ID number describing the platform for the following encoding ID.
* This comes directly from the TrueType specification and gets
* emulated for other formats.
*
* encoding_id ::
* A platform-specific encoding number. This also comes from the
* TrueType specification and gets emulated similarly.
*/
typedef struct FT_CharMapRec_
{
FT_Face face;
FT_Encoding encoding;
FT_UShort platform_id;
FT_UShort encoding_id;
} FT_CharMapRec;
/*************************************************************************/
/*************************************************************************/
/* */
/* B A S E O B J E C T C L A S S E S */
/* */
/*************************************************************************/
/*************************************************************************/
/**************************************************************************
*
* @type:
* FT_Face_Internal
*
* @description:
* An opaque handle to an `FT_Face_InternalRec` structure that models the
* private data of a given @FT_Face object.
*
* This structure might change between releases of FreeType~2 and is not
* generally available to client applications.
*/
typedef struct FT_Face_InternalRec_* FT_Face_Internal;
/**************************************************************************
*
* @struct:
* FT_FaceRec
*
* @description:
* FreeType root face class structure. A face object models a typeface
* in a font file.
*
* @fields:
* num_faces ::
* The number of faces in the font file. Some font formats can have
* multiple faces in a single font file.
*
* face_index ::
* This field holds two different values. Bits 0-15 are the index of
* the face in the font file (starting with value~0). They are set
* to~0 if there is only one face in the font file.
*
* [Since 2.6.1] Bits 16-30 are relevant to GX and OpenType variation
* fonts only, holding the named instance index for the current face
* index (starting with value~1; value~0 indicates font access without
* a named instance). For non-variation fonts, bits 16-30 are ignored.
* If we have the third named instance of face~4, say, `face_index` is
* set to 0x00030004.
*
* Bit 31 is always zero (this is, `face_index` is always a positive
* value).
*
* [Since 2.9] Changing the design coordinates with
* @FT_Set_Var_Design_Coordinates or @FT_Set_Var_Blend_Coordinates does
* not influence the named instance index value (only
* @FT_Set_Named_Instance does that).
*
* face_flags ::
* A set of bit flags that give important information about the face;
* see @FT_FACE_FLAG_XXX for the details.
*
* style_flags ::
* The lower 16~bits contain a set of bit flags indicating the style of
* the face; see @FT_STYLE_FLAG_XXX for the details.
*
* [Since 2.6.1] Bits 16-30 hold the number of named instances
* available for the current face if we have a GX or OpenType variation
* (sub)font. Bit 31 is always zero (this is, `style_flags` is always
* a positive value). Note that a variation font has always at least
* one named instance, namely the default instance.
*
* num_glyphs ::
* The number of glyphs in the face. If the face is scalable and has
* sbits (see `num_fixed_sizes`), it is set to the number of outline
* glyphs.
*
* For CID-keyed fonts (not in an SFNT wrapper) this value gives the
* highest CID used in the font.
*
* family_name ::
* The face's family name. This is an ASCII string, usually in
* English, that describes the typeface's family (like 'Times New
* Roman', 'Bodoni', 'Garamond', etc). This is a least common
* denominator used to list fonts. Some formats (TrueType & OpenType)
* provide localized and Unicode versions of this string. Applications
* should use the format-specific interface to access them. Can be
* `NULL` (e.g., in fonts embedded in a PDF file).
*
* In case the font doesn't provide a specific family name entry,
* FreeType tries to synthesize one, deriving it from other name
* entries.
*
* style_name ::
* The face's style name. This is an ASCII string, usually in English,
* that describes the typeface's style (like 'Italic', 'Bold',
* 'Condensed', etc). Not all font formats provide a style name, so
* this field is optional, and can be set to `NULL`. As for
* `family_name`, some formats provide localized and Unicode versions
* of this string. Applications should use the format-specific
* interface to access them.
*
* num_fixed_sizes ::
* The number of bitmap strikes in the face. Even if the face is
* scalable, there might still be bitmap strikes, which are called
* 'sbits' in that case.
*
* available_sizes ::
* An array of @FT_Bitmap_Size for all bitmap strikes in the face. It
* is set to `NULL` if there is no bitmap strike.
*
* Note that FreeType tries to sanitize the strike data since they are
* sometimes sloppy or incorrect, but this can easily fail.
*
* num_charmaps ::
* The number of charmaps in the face.
*
* charmaps ::
* An array of the charmaps of the face.
*
* generic ::
* A field reserved for client uses. See the @FT_Generic type
* description.
*
* bbox ::
* The font bounding box. Coordinates are expressed in font units (see
* `units_per_EM`). The box is large enough to contain any glyph from
* the font. Thus, `bbox.yMax` can be seen as the 'maximum ascender',
* and `bbox.yMin` as the 'minimum descender'. Only relevant for
* scalable formats.
*
* Note that the bounding box might be off by (at least) one pixel for
* hinted fonts. See @FT_Size_Metrics for further discussion.
*
* units_per_EM ::
* The number of font units per EM squa
gitextract_s_lvljwb/ ├── .gitignore ├── Antario/ │ ├── EventListener.h │ ├── Features/ │ │ ├── ESP.cpp │ │ ├── ESP.h │ │ ├── EnginePrediction.cpp │ │ ├── EnginePrediction.h │ │ ├── Features.h │ │ └── Misc.h │ ├── GUI/ │ │ ├── GUI.cpp │ │ └── GUI.h │ ├── Hooks.cpp │ ├── Hooks.h │ ├── LIB/ │ │ └── freetype/ │ │ ├── freetype/ │ │ │ ├── config/ │ │ │ │ ├── ftconfig.h │ │ │ │ ├── ftheader.h │ │ │ │ ├── ftmodule.h │ │ │ │ ├── ftoption.h │ │ │ │ └── ftstdlib.h │ │ │ ├── freetype.h │ │ │ ├── ftadvanc.h │ │ │ ├── ftbbox.h │ │ │ ├── ftbdf.h │ │ │ ├── ftbitmap.h │ │ │ ├── ftbzip2.h │ │ │ ├── ftcache.h │ │ │ ├── ftchapters.h │ │ │ ├── ftcid.h │ │ │ ├── ftcolor.h │ │ │ ├── ftdriver.h │ │ │ ├── fterrdef.h │ │ │ ├── fterrors.h │ │ │ ├── ftfntfmt.h │ │ │ ├── ftgasp.h │ │ │ ├── ftglyph.h │ │ │ ├── ftgxval.h │ │ │ ├── ftgzip.h │ │ │ ├── ftimage.h │ │ │ ├── ftincrem.h │ │ │ ├── ftlcdfil.h │ │ │ ├── ftlist.h │ │ │ ├── ftlzw.h │ │ │ ├── ftmac.h │ │ │ ├── ftmm.h │ │ │ ├── ftmodapi.h │ │ │ ├── ftmoderr.h │ │ │ ├── ftotval.h │ │ │ ├── ftoutln.h │ │ │ ├── ftparams.h │ │ │ ├── ftpfr.h │ │ │ ├── ftrender.h │ │ │ ├── ftsizes.h │ │ │ ├── ftsnames.h │ │ │ ├── ftstroke.h │ │ │ ├── ftsynth.h │ │ │ ├── ftsystem.h │ │ │ ├── fttrigon.h │ │ │ ├── fttypes.h │ │ │ ├── ftwinfnt.h │ │ │ ├── internal/ │ │ │ │ ├── autohint.h │ │ │ │ ├── cffotypes.h │ │ │ │ ├── cfftypes.h │ │ │ │ ├── ftcalc.h │ │ │ │ ├── ftdebug.h │ │ │ │ ├── ftdrv.h │ │ │ │ ├── ftgloadr.h │ │ │ │ ├── fthash.h │ │ │ │ ├── ftmemory.h │ │ │ │ ├── ftobjs.h │ │ │ │ ├── ftpsprop.h │ │ │ │ ├── ftrfork.h │ │ │ │ ├── ftserv.h │ │ │ │ ├── ftstream.h │ │ │ │ ├── fttrace.h │ │ │ │ ├── ftvalid.h │ │ │ │ ├── internal.h │ │ │ │ ├── psaux.h │ │ │ │ ├── pshints.h │ │ │ │ ├── services/ │ │ │ │ │ ├── svbdf.h │ │ │ │ │ ├── svcfftl.h │ │ │ │ │ ├── svcid.h │ │ │ │ │ ├── svfntfmt.h │ │ │ │ │ ├── svgldict.h │ │ │ │ │ ├── svgxval.h │ │ │ │ │ ├── svkern.h │ │ │ │ │ ├── svmetric.h │ │ │ │ │ ├── svmm.h │ │ │ │ │ ├── svotval.h │ │ │ │ │ ├── svpfr.h │ │ │ │ │ ├── svpostnm.h │ │ │ │ │ ├── svprop.h │ │ │ │ │ ├── svpscmap.h │ │ │ │ │ ├── svpsinfo.h │ │ │ │ │ ├── svsfnt.h │ │ │ │ │ ├── svttcmap.h │ │ │ │ │ ├── svtteng.h │ │ │ │ │ ├── svttglyf.h │ │ │ │ │ └── svwinfnt.h │ │ │ │ ├── sfnt.h │ │ │ │ ├── t1types.h │ │ │ │ └── tttypes.h │ │ │ ├── t1tables.h │ │ │ ├── ttnameid.h │ │ │ ├── tttables.h │ │ │ └── tttags.h │ │ ├── freetype.lib │ │ └── ft2build.h │ ├── Menu.cpp │ ├── SDK/ │ │ ├── CEntity.h │ │ ├── CGlobalVarsBase.h │ │ ├── CHandle.h │ │ ├── CInput.h │ │ ├── CPrediction.h │ │ ├── ClientClass.h │ │ ├── Definitions.h │ │ ├── IBaseClientDll.h │ │ ├── IClientEntity.h │ │ ├── IClientEntityList.h │ │ ├── IClientMode.h │ │ ├── IClientNetworkable.h │ │ ├── IClientRenderable.h │ │ ├── IClientThinkable.h │ │ ├── IClientUnknown.h │ │ ├── IGameEvent.h │ │ ├── ISurface.h │ │ ├── IVEngineClient.h │ │ ├── KeyValues.h │ │ ├── PlayerInfo.h │ │ ├── Recv.h │ │ ├── VMatrix.h │ │ └── Vector.h │ ├── Settings.cpp │ ├── Settings.h │ ├── Utils/ │ │ ├── Color.h │ │ ├── DrawManager.cpp │ │ ├── DrawManager.h │ │ ├── Font.cpp │ │ ├── Font.h │ │ ├── GlobalVars.cpp │ │ ├── GlobalVars.h │ │ ├── Interfaces.cpp │ │ ├── Interfaces.h │ │ ├── NetvarManager.cpp │ │ ├── NetvarManager.h │ │ ├── SPoint.h │ │ ├── SRect.h │ │ └── Utils.h │ └── dllmain.cpp ├── Antario.sln ├── Antario.sln.DotSettings.user ├── Antario.vcxproj ├── Antario.vcxproj.filters ├── Antario.vcxproj.user ├── LICENSE └── README.md
SYMBOL INDEX (670 symbols across 104 files)
FILE: Antario/EventListener.h
function class (line 5) | class EventListener : public IGameEventListener2
FILE: Antario/Features/ESP.h
function localTeam (line 15) | int localTeam{}
function Color (line 17) | Color enemyColor{ 250, 165, 110, 255 };
FILE: Antario/Features/EnginePrediction.h
function namespace (line 3) | namespace engine_prediction
FILE: Antario/Features/Misc.h
function class (line 5) | class Misc
FILE: Antario/GUI/GUI.cpp
function ObjectPtr (line 173) | ObjectPtr ControlManager::GetObjectAtPoint(SPoint ptPoint)
function SPoint (line 1112) | SPoint ComboBox::GetSelectableSize()
FILE: Antario/GUI/GUI.h
function namespace (line 7) | namespace ui
function MsgProc (line 105) | bool MsgProc(UINT uMsg, WPARAM wParam, LPARAM lParam) override ...
function virtual (line 106) | virtual bool HandleKeyboardInput(UINT uMsg, WPARAM wParam, LPARAM lParam...
function virtual (line 107) | virtual bool HandleMouseInput (UINT uMsg, WPARAM wParam, LPARAM lParam...
function virtual (line 110) | virtual void SetPos(SPoint ptNewPosition) { this->rcBoundingBox.left =...
function virtual (line 112) | virtual void SetSize(SSize sNewSize) { this->szSizeObject = sNewS...
function virtual (line 113) | virtual SRect GetBBox() { return this->rcBoundingBox; }
function virtual (line 115) | virtual void SetHovered(bool hov) { this->bIsHovered = hov; }
function Initialize (line 119) | void Initialize() override { }
function virtual (line 121) | virtual void SetupPositions() { this->SetupBaseSize(); }
function virtual (line 125) | virtual void AddChild(ObjectPtr child) { this->vecChildren.push...
function virtual (line 126) | virtual int GetMaxChildWidth() { return this->iMaxChild...
function virtual (line 127) | virtual void SetParent(ObjectPtr parent) { this->pParent = parent; }
function virtual (line 128) | virtual ObjectPtr GetParent() { return this->pParent; }
function class (line 143) | class Control : public UIObject
function SetupPositions (line 177) | void SetupPositions() override;
function class (line 207) | class Tab : public ControlManager
function class (line 224) | class ScrollBar : public Control
function class (line 270) | class Section : public ControlManager
function Render (line 301) | void Render() override;
FILE: Antario/Hooks.cpp
function HRESULT (line 108) | HRESULT __stdcall Hooks::Reset(IDirect3DDevice9* pDevice, D3DPRESENT_PAR...
function HRESULT (line 126) | HRESULT __stdcall Hooks::Present(IDirect3DDevice9* pDevice, const RECT* ...
function LRESULT (line 175) | LRESULT Hooks::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
FILE: Antario/Hooks.h
function namespace (line 11) | namespace vtable_indexes
function class (line 20) | class Hooks
function class (line 66) | class VMTHook
function HRESULT (line 96) | HRESULT Hook(const std::size_t index, void* fnNew)
function HRESULT (line 105) | HRESULT Unhook(const std::size_t index)
FILE: Antario/LIB/freetype/freetype/config/ftconfig.h
type FT_Int16 (line 169) | typedef signed short FT_Int16;
type FT_UInt16 (line 180) | typedef unsigned short FT_UInt16;
type FT_Int32 (line 197) | typedef signed XXX FT_Int32;
type FT_UInt32 (line 208) | typedef unsigned XXX FT_UInt32;
type FT_Int64 (line 220) | typedef signed XXX FT_Int64;
type FT_UInt64 (line 232) | typedef unsigned XXX FT_UInt64;
type FT_Int32 (line 240) | typedef signed int FT_Int32;
type FT_UInt32 (line 241) | typedef unsigned int FT_UInt32;
type FT_Int32 (line 245) | typedef signed long FT_Int32;
type FT_UInt32 (line 246) | typedef unsigned long FT_UInt32;
type FT_Fast (line 256) | typedef int FT_Fast;
type FT_UFast (line 257) | typedef unsigned int FT_UFast;
type FT_Fast (line 261) | typedef long FT_Fast;
type FT_UFast (line 262) | typedef unsigned long FT_UFast;
type FT_INT64 (line 330) | typedef FT_INT64 FT_Int64;
type FT_UINT64 (line 331) | typedef FT_UINT64 FT_UInt64;
FILE: Antario/LIB/freetype/freetype/freetype.h
type FT_Glyph_Metrics_ (line 316) | struct FT_Glyph_Metrics_
type FT_Bitmap_Size (line 371) | typedef struct FT_Bitmap_Size_
type FT_LibraryRec_ (line 415) | struct FT_LibraryRec_
type FT_ModuleRec_ (line 435) | struct FT_ModuleRec_
type FT_DriverRec_ (line 447) | struct FT_DriverRec_
type FT_RendererRec_ (line 460) | struct FT_RendererRec_
type FT_FaceRec_ (line 499) | struct FT_FaceRec_
type FT_SizeRec_ (line 529) | struct FT_SizeRec_
type FT_GlyphSlotRec_ (line 548) | struct FT_GlyphSlotRec_
type FT_CharMapRec_ (line 582) | struct FT_CharMapRec_
type FT_Encoding (line 756) | typedef enum FT_Encoding_
type FT_CharMapRec (line 833) | typedef struct FT_CharMapRec_
type FT_Face_InternalRec_ (line 864) | struct FT_Face_InternalRec_
type FT_FaceRec (line 1041) | typedef struct FT_FaceRec_
type FT_Size_InternalRec_ (line 1501) | struct FT_Size_InternalRec_
type FT_Size_Metrics (line 1608) | typedef struct FT_Size_Metrics_
type FT_SizeRec (line 1645) | typedef struct FT_SizeRec_
type FT_SubGlyphRec_ (line 1671) | struct FT_SubGlyphRec_
type FT_Slot_InternalRec_ (line 1683) | struct FT_Slot_InternalRec_
type FT_GlyphSlotRec (line 1877) | typedef struct FT_GlyphSlotRec_
type FT_Parameter (line 2045) | typedef struct FT_Parameter_
type FT_Open_Args (line 2116) | typedef struct FT_Open_Args_
type FT_Size_Request_Type (line 2555) | typedef enum FT_Size_Request_Type_
type FT_Size_RequestRec (line 2607) | typedef struct FT_Size_RequestRec_
type FT_Size_RequestRec_ (line 2626) | struct FT_Size_RequestRec_
type FT_Render_Mode (line 3254) | typedef enum FT_Render_Mode_
type FT_Kerning_Mode (line 3411) | typedef enum FT_Kerning_Mode_
type FT_LayerIterator (line 4062) | typedef struct FT_LayerIterator_
FILE: Antario/LIB/freetype/freetype/ftbdf.h
type BDF_PropertyType_ (line 74) | enum BDF_PropertyType_
type BDF_PropertyRec_ (line 93) | struct BDF_PropertyRec_
type BDF_PropertyRec (line 118) | typedef struct BDF_PropertyRec_
FILE: Antario/LIB/freetype/freetype/ftcache.h
type FT_Error (line 210) | typedef FT_Error
type FTC_ManagerRec_ (line 251) | struct FTC_ManagerRec_
type FTC_NodeRec_ (line 271) | struct FTC_NodeRec_
type FTC_ScalerRec (line 442) | typedef struct FTC_ScalerRec_
type FTC_ScalerRec_ (line 462) | struct FTC_ScalerRec_
type FTC_CMapCacheRec_ (line 574) | struct FTC_CMapCacheRec_
type FTC_ImageTypeRec (line 673) | typedef struct FTC_ImageTypeRec_
type FTC_ImageTypeRec_ (line 692) | struct FTC_ImageTypeRec_
type FTC_ImageCacheRec_ (line 714) | struct FTC_ImageCacheRec_
type FTC_SBitRec_ (line 862) | struct FTC_SBitRec_
type FTC_SBitRec (line 907) | typedef struct FTC_SBitRec_
type FTC_SBitCacheRec_ (line 936) | struct FTC_SBitCacheRec_
FILE: Antario/LIB/freetype/freetype/ftcolor.h
type FT_Color_ (line 79) | struct FT_Color_
type FT_Palette_Data (line 169) | typedef struct FT_Palette_Data_ {
FILE: Antario/LIB/freetype/freetype/ftdriver.h
type FT_Prop_GlyphToScriptMap (line 1010) | typedef struct FT_Prop_GlyphToScriptMap_
type FT_Prop_IncreaseXHeight (line 1160) | typedef struct FT_Prop_IncreaseXHeight_
FILE: Antario/LIB/freetype/freetype/ftglyph.h
type FT_Glyph_Class_ (line 70) | struct FT_Glyph_Class_
type FT_GlyphRec_ (line 88) | struct FT_GlyphRec_
type FT_GlyphRec (line 113) | typedef struct FT_GlyphRec_
type FT_BitmapGlyphRec_ (line 132) | struct FT_BitmapGlyphRec_
type FT_BitmapGlyphRec (line 168) | typedef struct FT_BitmapGlyphRec_
type FT_OutlineGlyphRec_ (line 187) | struct FT_OutlineGlyphRec_
type FT_OutlineGlyphRec (line 218) | typedef struct FT_OutlineGlyphRec_
type FT_Glyph_BBox_Mode (line 370) | typedef enum FT_Glyph_BBox_Mode_
FILE: Antario/LIB/freetype/freetype/ftimage.h
type FT_Vector (line 76) | typedef struct FT_Vector_
type FT_BBox (line 119) | typedef struct FT_BBox_
type FT_Pixel_Mode (line 181) | typedef enum FT_Pixel_Mode_
type FT_Bitmap (line 261) | typedef struct FT_Bitmap_
type FT_Outline (line 337) | typedef struct FT_Outline_
type FT_Outline_Funcs (line 651) | typedef struct FT_Outline_Funcs_
type FT_Glyph_Format (line 736) | typedef enum FT_Glyph_Format_
type FT_RasterRec_ (line 821) | struct FT_RasterRec_
type FT_Span (line 851) | typedef struct FT_Span_
type FT_Raster_Params (line 1024) | typedef struct FT_Raster_Params_
type FT_Raster_Funcs (line 1215) | typedef struct FT_Raster_Funcs_
FILE: Antario/LIB/freetype/freetype/ftincrem.h
type FT_IncrementalRec_ (line 86) | struct FT_IncrementalRec_
type FT_Incremental_MetricsRec (line 117) | typedef struct FT_Incremental_MetricsRec_
type FT_Incremental_MetricsRec_ (line 136) | struct FT_Incremental_MetricsRec_
type FT_Error (line 180) | typedef FT_Error
type FT_Error (line 242) | typedef FT_Error
type FT_Incremental_FuncsRec (line 271) | typedef struct FT_Incremental_FuncsRec_
type FT_Incremental_InterfaceRec (line 316) | typedef struct FT_Incremental_InterfaceRec_
type FT_Incremental_InterfaceRec (line 333) | typedef FT_Incremental_InterfaceRec* FT_Incremental_Interface;
FILE: Antario/LIB/freetype/freetype/ftlcdfil.h
type FT_LcdFilter_ (line 161) | enum FT_LcdFilter_
type FT_Byte (line 270) | typedef FT_Byte FT_LcdFiveTapFilter[FT_LCD_FILTER_FIVE_TAPS];
FILE: Antario/LIB/freetype/freetype/ftmm.h
type FT_MM_Axis_ (line 76) | struct FT_MM_Axis_
type FT_Multi_Master (line 108) | typedef struct FT_Multi_Master_
type FT_Var_Axis (line 156) | typedef struct FT_Var_Axis_
type FT_Var_Named_Style (line 193) | typedef struct FT_Var_Named_Style_
type FT_MM_Var (line 243) | typedef struct FT_MM_Var_
FILE: Antario/LIB/freetype/freetype/ftmodapi.h
type FT_Pointer (line 137) | typedef FT_Pointer FT_Module_Interface;
type FT_Error (line 152) | typedef FT_Error
type FT_Module_Interface (line 187) | typedef FT_Module_Interface
type FT_Module_Class (line 233) | typedef struct FT_Module_Class_
type FT_TrueTypeEngineType (line 745) | typedef enum FT_TrueTypeEngineType_
FILE: Antario/LIB/freetype/freetype/ftoutln.h
function FT_BEGIN_HEADER (line 34) | FT_BEGIN_HEADER
FILE: Antario/LIB/freetype/freetype/ftrender.h
type FT_Error (line 57) | typedef FT_Error
type FT_Error (line 61) | typedef FT_Error
type FT_Glyph_Class_ (line 74) | struct FT_Glyph_Class_
type FT_Error (line 88) | typedef FT_Error
type FT_Error (line 94) | typedef FT_Error
type FT_Error (line 107) | typedef FT_Error
type FT_Renderer_Class (line 151) | typedef struct FT_Renderer_Class_
FILE: Antario/LIB/freetype/freetype/ftsnames.h
type FT_SfntName_ (line 108) | struct FT_SfntName_
type FT_SfntLangTag (line 210) | typedef struct FT_SfntLangTag_
FILE: Antario/LIB/freetype/freetype/ftstroke.h
type FT_StrokerRec_ (line 92) | struct FT_StrokerRec_
type FT_Stroker_LineJoin (line 138) | typedef enum FT_Stroker_LineJoin_
type FT_Stroker_LineCap (line 169) | typedef enum FT_Stroker_LineCap_
type FT_StrokerBorder (line 203) | typedef enum FT_StrokerBorder_
FILE: Antario/LIB/freetype/freetype/ftsystem.h
type FT_MemoryRec_ (line 65) | struct FT_MemoryRec_
type FT_MemoryRec_ (line 170) | struct FT_MemoryRec_
type FT_StreamRec_ (line 199) | struct FT_StreamRec_
type FT_StreamDesc (line 212) | typedef union FT_StreamDesc_
type FT_StreamRec (line 328) | typedef struct FT_StreamRec_
FILE: Antario/LIB/freetype/freetype/fttypes.h
type FT_FWord (line 120) | typedef signed short FT_FWord;
type FT_UFWord (line 132) | typedef unsigned short FT_UFWord;
type FT_Char (line 143) | typedef signed char FT_Char;
type FT_Byte (line 154) | typedef unsigned char FT_Byte;
type FT_Byte (line 165) | typedef const FT_Byte* FT_Bytes;
type FT_UInt32 (line 176) | typedef FT_UInt32 FT_Tag;
type FT_String (line 187) | typedef char FT_String;
type FT_Short (line 198) | typedef signed short FT_Short;
type FT_UShort (line 209) | typedef unsigned short FT_UShort;
type FT_Int (line 220) | typedef signed int FT_Int;
type FT_UInt (line 231) | typedef unsigned int FT_UInt;
type FT_Long (line 242) | typedef signed long FT_Long;
type FT_ULong (line 253) | typedef unsigned long FT_ULong;
type FT_F2Dot14 (line 264) | typedef signed short FT_F2Dot14;
type FT_F26Dot6 (line 275) | typedef signed long FT_F26Dot6;
type FT_Fixed (line 287) | typedef signed long FT_Fixed;
type FT_Error (line 299) | typedef int FT_Error;
type FT_Offset (line 323) | typedef size_t FT_Offset;
type ft_ptrdiff_t (line 336) | typedef ft_ptrdiff_t FT_PtrDist;
type FT_UnitVector (line 355) | typedef struct FT_UnitVector_
type FT_Matrix (line 390) | typedef struct FT_Matrix_
type FT_Data (line 413) | typedef struct FT_Data_
type FT_Generic (line 467) | typedef struct FT_Generic_
type FT_ListNodeRec_ (line 523) | struct FT_ListNodeRec_
type FT_ListRec_ (line 534) | struct FT_ListRec_
type FT_ListNodeRec (line 555) | typedef struct FT_ListNodeRec_
type FT_ListRec (line 580) | typedef struct FT_ListRec_
FILE: Antario/LIB/freetype/freetype/ftwinfnt.h
type FT_WinFNT_HeaderRec (line 184) | typedef struct FT_WinFNT_HeaderRec_
type FT_WinFNT_HeaderRec_ (line 234) | struct FT_WinFNT_HeaderRec_
FILE: Antario/LIB/freetype/freetype/internal/autohint.h
type FT_AutoHinterRec_ (line 80) | struct FT_AutoHinterRec_
type FT_Error (line 185) | typedef FT_Error
type FT_AutoHinter_InterfaceRec (line 201) | typedef struct FT_AutoHinter_InterfaceRec_
FILE: Antario/LIB/freetype/freetype/internal/cffotypes.h
type CFF_SizeRec (line 44) | typedef struct CFF_SizeRec_
type CFF_GlyphSlotRec (line 60) | typedef struct CFF_GlyphSlotRec_
type CFF_InternalRec (line 81) | typedef struct CFF_InternalRec_
type CFF_Transform (line 93) | typedef struct CFF_Transform_
FILE: Antario/LIB/freetype/freetype/internal/cfftypes.h
type CFF_IndexRec_ (line 69) | struct CFF_IndexRec_
type CFF_EncodingRec (line 85) | typedef struct CFF_EncodingRec_
type CFF_CharsetRec (line 97) | typedef struct CFF_CharsetRec_
type CFF_VarData (line 114) | typedef struct CFF_VarData_
type CFF_AxisCoords (line 128) | typedef struct CFF_AxisCoords_
type CFF_VarRegion (line 137) | typedef struct CFF_VarRegion_
type CFF_VStoreRec (line 144) | typedef struct CFF_VStoreRec_
type CFF_FontRec_ (line 157) | struct CFF_FontRec_
type CFF_BlendRec (line 171) | typedef struct CFF_BlendRec_
type CFF_FontRecDictRec (line 185) | typedef struct CFF_FontRecDictRec_
type CFF_SubFontRec_ (line 242) | struct CFF_SubFontRec_
type CFF_PrivateRec (line 245) | typedef struct CFF_PrivateRec_
type CFF_FDSelectRec (line 284) | typedef struct CFF_FDSelectRec_
type CFF_SubFontRec (line 303) | typedef struct CFF_SubFontRec_
type CFF_FontRec (line 338) | typedef struct CFF_FontRec_
FILE: Antario/LIB/freetype/freetype/internal/ftcalc.h
function FT_Int32 (line 79) | static __inline__ FT_Int32
function FT_Int32 (line 115) | static __inline__ FT_Int32
function FT_Int32 (line 184) | static __inline__ FT_Int32
function FT_Int32 (line 382) | static __inline FT_Int32
FILE: Antario/LIB/freetype/freetype/internal/ftdebug.h
type FT_Trace (line 57) | typedef enum FT_Trace_
FILE: Antario/LIB/freetype/freetype/internal/ftdrv.h
type FT_Error (line 41) | typedef FT_Error
type FT_Error (line 48) | typedef FT_Error
type FT_Error (line 55) | typedef FT_Error
type FT_Error (line 59) | typedef FT_Error
type FT_Error (line 63) | typedef FT_Error
type FT_Error (line 70) | typedef FT_Error
type FT_Error (line 77) | typedef FT_Error
type FT_Error (line 82) | typedef FT_Error
type FT_Driver_ClassRec (line 164) | typedef struct FT_Driver_ClassRec_
FILE: Antario/LIB/freetype/freetype/internal/ftgloadr.h
type FT_SubGlyphRec_ (line 39) | struct FT_SubGlyphRec_
type FT_GlyphLoadRec (line 50) | typedef struct FT_GlyphLoadRec_
type FT_GlyphLoaderRec (line 61) | typedef struct FT_GlyphLoaderRec_
FILE: Antario/LIB/freetype/freetype/internal/fthash.h
type FT_HashnodeRec (line 61) | typedef struct FT_HashnodeRec_
type FT_HashnodeRec_ (line 68) | struct FT_HashnodeRec_
type FT_ULong (line 71) | typedef FT_ULong
type FT_Bool (line 74) | typedef FT_Bool
type FT_HashRec (line 79) | typedef struct FT_HashRec_
type FT_HashRec_ (line 92) | struct FT_HashRec_
FILE: Antario/LIB/freetype/freetype/internal/ftmemory.h
function T (line 70) | T*
FILE: Antario/LIB/freetype/freetype/internal/ftobjs.h
type FT_CMapRec_ (line 143) | struct FT_CMapRec_
type FT_CMap_ClassRec_ (line 146) | struct FT_CMap_ClassRec_
type FT_CMapRec (line 149) | typedef struct FT_CMapRec_
type FT_Error (line 167) | typedef FT_Error
type FT_UInt (line 174) | typedef FT_UInt
type FT_UInt (line 178) | typedef FT_UInt
type FT_UInt (line 182) | typedef FT_UInt
type FT_Int (line 188) | typedef FT_Int
type FT_UInt32 (line 193) | typedef FT_UInt32 *
type FT_UInt32 (line 197) | typedef FT_UInt32 *
type FT_UInt32 (line 202) | typedef FT_UInt32 *
type FT_CMap_ClassRec (line 208) | typedef struct FT_CMap_ClassRec_
type FT_Face_InternalRec (line 359) | typedef struct FT_Face_InternalRec_
type FT_GlyphSlot_InternalRec (line 425) | typedef struct FT_Slot_InternalRec_
type FT_Size_InternalRec (line 459) | typedef struct FT_Size_InternalRec_
type FT_ModuleRec (line 500) | typedef struct FT_ModuleRec_
type FT_RendererRec (line 743) | typedef struct FT_RendererRec_
type FT_DriverRec (line 801) | typedef struct FT_DriverRec_
type FT_LibraryRec (line 895) | typedef struct FT_LibraryRec_
type FT_Error (line 937) | typedef FT_Error
type FT_UInt (line 943) | typedef FT_UInt
FILE: Antario/LIB/freetype/freetype/internal/ftrfork.h
type FT_RFork_Ref (line 44) | typedef struct FT_RFork_Ref_
type FT_Error (line 53) | typedef FT_Error
type FT_RFork_Rule (line 60) | typedef enum FT_RFork_Rule_ {
type ft_raccess_guess_rec (line 78) | typedef struct ft_raccess_guess_rec_ {
FILE: Antario/LIB/freetype/freetype/internal/ftserv.h
type FT_ServiceDescRec (line 152) | typedef struct FT_ServiceDescRec_
type FT_ServiceDescRec (line 159) | typedef const FT_ServiceDescRec* FT_ServiceDesc;
type FT_ServiceCacheRec (line 388) | typedef struct FT_ServiceCacheRec_
FILE: Antario/LIB/freetype/freetype/internal/ftstream.h
type FT_Frame_Op (line 57) | typedef enum FT_Frame_Op_
type FT_Frame_Field (line 86) | typedef struct FT_Frame_Field_
FILE: Antario/LIB/freetype/freetype/internal/ftvalid.h
type FT_ValidatorRec_ (line 42) | struct FT_ValidatorRec_
type FT_ValidationLevel (line 70) | typedef enum FT_ValidationLevel_
type FT_ValidatorRec (line 88) | typedef struct FT_ValidatorRec_
FILE: Antario/LIB/freetype/freetype/internal/psaux.h
type PS_DriverRec_ (line 42) | struct PS_DriverRec_
type PS_TableRec_ (line 63) | struct PS_TableRec_
type PS_Table_FuncsRec_ (line 64) | struct PS_Table_FuncsRec_
type PS_Table_FuncsRec (line 88) | typedef struct PS_Table_FuncsRec_
type PS_TableRec (line 151) | typedef struct PS_TableRec_
type PS_ParserRec_ (line 177) | struct PS_ParserRec_
type T1_TokenRec_ (line 179) | struct T1_TokenRec_
type T1_FieldRec_ (line 181) | struct T1_FieldRec_
type T1_TokenType (line 185) | typedef enum T1_TokenType_
type T1_TokenRec (line 200) | typedef struct T1_TokenRec_
type T1_FieldType (line 210) | typedef enum T1_FieldType_
type T1_FieldLocation (line 231) | typedef enum T1_FieldLocation_
type T1_FieldRec (line 255) | typedef struct T1_FieldRec_
type PS_Parser_FuncsRec_ (line 371) | struct PS_Parser_FuncsRec_
type PS_Parser_FuncsRec (line 373) | typedef struct PS_Parser_FuncsRec_
type PS_ParserRec (line 465) | typedef struct PS_ParserRec_
type PS_Builder (line 487) | typedef struct PS_Builder_ PS_Builder;
type PS_Builder_FuncsRec_ (line 488) | struct PS_Builder_FuncsRec_
type PS_Builder_FuncsRec (line 490) | typedef struct PS_Builder_FuncsRec_
type PS_Builder_ (line 564) | struct PS_Builder_
type PS_Decoder_Zone (line 610) | typedef struct PS_Decoder_Zone_
type FT_Error (line 619) | typedef FT_Error
type PS_Decoder (line 631) | typedef struct PS_Decoder_
type T1_BuilderRec_ (line 699) | struct T1_BuilderRec_
type FT_Error (line 702) | typedef FT_Error
type FT_Error (line 712) | typedef FT_Error
type FT_Error (line 717) | typedef FT_Error
type FT_Error (line 720) | typedef FT_Error
type T1_Builder_FuncsRec_ (line 729) | struct T1_Builder_FuncsRec_
type T1_Builder_FuncsRec (line 731) | typedef struct T1_Builder_FuncsRec_
type T1_ParseState (line 754) | typedef enum T1_ParseState_
type T1_BuilderRec (line 828) | typedef struct T1_BuilderRec_
type T1_Decoder_ZoneRec (line 886) | typedef struct T1_Decoder_ZoneRec_
type T1_DecoderRec_ (line 895) | struct T1_DecoderRec_
type T1_Decoder_FuncsRec_ (line 896) | struct T1_Decoder_FuncsRec_
type FT_Error (line 899) | typedef FT_Error
type T1_Decoder_FuncsRec (line 904) | typedef struct T1_Decoder_FuncsRec_
type T1_DecoderRec (line 941) | typedef struct T1_DecoderRec_
type CFF_Builder (line 994) | typedef struct CFF_Builder_ CFF_Builder;
type FT_Error (line 997) | typedef FT_Error
type FT_Error (line 1006) | typedef FT_Error
type FT_Error (line 1010) | typedef FT_Error
type FT_Error (line 1017) | typedef FT_Error
type CFF_Builder_FuncsRec_ (line 1020) | struct CFF_Builder_FuncsRec_
type CFF_Builder_FuncsRec (line 1022) | typedef struct CFF_Builder_FuncsRec_
type CFF_Builder_ (line 1108) | struct CFF_Builder_
type CFF_Decoder_Zone (line 1158) | typedef struct CFF_Decoder_Zone_
type CFF_Decoder (line 1167) | typedef struct CFF_Decoder_
type CFF_Decoder_FuncsRec_ (line 1214) | struct CFF_Decoder_FuncsRec_
type CFF_Decoder_FuncsRec (line 1216) | typedef struct CFF_Decoder_FuncsRec_
type AFM_ParserRec_ (line 1257) | struct AFM_ParserRec_
type AFM_Parser_FuncsRec (line 1259) | typedef struct AFM_Parser_FuncsRec_
type AFM_StreamRec_ (line 1276) | struct AFM_StreamRec_
type AFM_ParserRec (line 1300) | typedef struct AFM_ParserRec_
type T1_CMap_ClassesRec_ (line 1325) | struct T1_CMap_ClassesRec_
type T1_CMap_ClassesRec (line 1327) | typedef struct T1_CMap_ClassesRec_
type PSAux_ServiceRec (line 1345) | typedef struct PSAux_ServiceRec_
type PSAux_ServiceRec (line 1381) | typedef PSAux_ServiceRec PSAux_Interface;
FILE: Antario/LIB/freetype/freetype/internal/pshints.h
type PSH_GlobalsRec_ (line 41) | struct PSH_GlobalsRec_
type FT_Error (line 43) | typedef FT_Error
type PSH_Globals_FuncsRec (line 59) | typedef struct PSH_Globals_FuncsRec_
type T1_HintsRec_ (line 104) | struct T1_HintsRec_
type T1_Hints_FuncsRec_ (line 117) | struct T1_Hints_FuncsRec_
type FT_Error (line 265) | typedef FT_Error
type FT_Error (line 304) | typedef FT_Error
type T1_Hints_FuncsRec (line 342) | typedef struct T1_Hints_FuncsRec_
type T2_HintsRec_ (line 391) | struct T2_HintsRec_
type T2_Hints_FuncsRec_ (line 404) | struct T2_Hints_FuncsRec_
type FT_Error (line 579) | typedef FT_Error
type FT_Error (line 617) | typedef FT_Error
type T2_Hints_FuncsRec (line 655) | typedef struct T2_Hints_FuncsRec_
type PSHinter_Interface (line 671) | typedef struct PSHinter_Interface_
type PSHinter_Interface (line 679) | typedef PSHinter_Interface* PSHinter_Service;
FILE: Antario/LIB/freetype/freetype/internal/services/svbdf.h
type FT_Error (line 31) | typedef FT_Error
type FT_Error (line 36) | typedef FT_Error
function FT_DEFINE_SERVICE (line 42) | FT_DEFINE_SERVICE( BDF )
FILE: Antario/LIB/freetype/freetype/internal/services/svcfftl.h
type FT_UShort (line 32) | typedef FT_UShort
type FT_Error (line 35) | typedef FT_Error
type FT_Byte (line 41) | typedef FT_Byte
type FT_Bool (line 45) | typedef FT_Bool
type FT_Error (line 51) | typedef FT_Error
function FT_DEFINE_SERVICE (line 58) | FT_DEFINE_SERVICE( CFFLoad )
FILE: Antario/LIB/freetype/freetype/internal/services/svcid.h
type FT_Error (line 30) | typedef FT_Error
type FT_Error (line 35) | typedef FT_Error
type FT_Error (line 38) | typedef FT_Error
function FT_DEFINE_SERVICE (line 43) | FT_DEFINE_SERVICE( CID )
FILE: Antario/LIB/freetype/freetype/internal/services/svgldict.h
type FT_Error (line 37) | typedef FT_Error
type FT_UInt (line 43) | typedef FT_UInt
function FT_DEFINE_SERVICE (line 48) | FT_DEFINE_SERVICE( GlyphDict )
FILE: Antario/LIB/freetype/freetype/internal/services/svgxval.h
type FT_Error (line 40) | typedef FT_Error
type FT_Error (line 47) | typedef FT_Error
function FT_DEFINE_SERVICE (line 53) | FT_DEFINE_SERVICE( GXvalidate )
function FT_DEFINE_SERVICE (line 58) | FT_DEFINE_SERVICE( CKERNvalidate )
FILE: Antario/LIB/freetype/freetype/internal/services/svkern.h
type FT_Error (line 31) | typedef FT_Error
function FT_DEFINE_SERVICE (line 37) | FT_DEFINE_SERVICE( Kerning )
FILE: Antario/LIB/freetype/freetype/internal/services/svmetric.h
type FT_Error (line 38) | typedef FT_Error
type FT_Error (line 43) | typedef FT_Error
type FT_Error (line 48) | typedef FT_Error
type FT_Error (line 55) | typedef FT_Error
type FT_Error (line 60) | typedef FT_Error
type FT_Error (line 65) | typedef FT_Error
type FT_Error (line 70) | typedef FT_Error
function FT_DEFINE_SERVICE (line 81) | FT_DEFINE_SERVICE( MetricsVariations )
FILE: Antario/LIB/freetype/freetype/internal/services/svmm.h
type FT_Error (line 38) | typedef FT_Error
type FT_Error (line 42) | typedef FT_Error
type FT_Error (line 46) | typedef FT_Error
type FT_Error (line 53) | typedef FT_Error
type FT_Error (line 60) | typedef FT_Error
type FT_Error (line 65) | typedef FT_Error
type FT_Error (line 70) | typedef FT_Error
type FT_Error (line 74) | typedef FT_Error
type FT_Error (line 79) | typedef FT_Error
type FT_Error (line 89) | typedef FT_Error
type FT_Error (line 94) | typedef FT_Error
function FT_DEFINE_SERVICE (line 100) | FT_DEFINE_SERVICE( MultiMasters )
FILE: Antario/LIB/freetype/freetype/internal/services/svotval.h
type FT_Error (line 31) | typedef FT_Error
function FT_DEFINE_SERVICE (line 41) | FT_DEFINE_SERVICE( OTvalidate )
FILE: Antario/LIB/freetype/freetype/internal/services/svpfr.h
type FT_Error (line 32) | typedef FT_Error
type FT_Error (line 39) | typedef FT_Error
type FT_Error (line 45) | typedef FT_Error
function FT_DEFINE_SERVICE (line 51) | FT_DEFINE_SERVICE( PfrMetrics )
FILE: Antario/LIB/freetype/freetype/internal/services/svpostnm.h
function FT_DEFINE_SERVICE (line 44) | FT_DEFINE_SERVICE( PsFontName )
FILE: Antario/LIB/freetype/freetype/internal/services/svprop.h
type FT_Error (line 29) | typedef FT_Error
type FT_Error (line 35) | typedef FT_Error
function FT_DEFINE_SERVICE (line 41) | FT_DEFINE_SERVICE( Properties )
FILE: Antario/LIB/freetype/freetype/internal/services/svpscmap.h
type FT_UInt32 (line 34) | typedef FT_UInt32
type PS_UniMap (line 53) | typedef struct PS_UniMap_
type PS_UnicodesRec_ (line 61) | struct PS_UnicodesRec_
type PS_UnicodesRec (line 63) | typedef struct PS_UnicodesRec_
type FT_Error (line 88) | typedef FT_Error
type FT_UInt (line 96) | typedef FT_UInt
type FT_UInt32 (line 100) | typedef FT_UInt32
function FT_DEFINE_SERVICE (line 105) | FT_DEFINE_SERVICE( PsCMaps )
FILE: Antario/LIB/freetype/freetype/internal/services/svpsinfo.h
type FT_Error (line 32) | typedef FT_Error
type FT_Error (line 36) | typedef FT_Error
type FT_Int (line 40) | typedef FT_Int
type FT_Error (line 43) | typedef FT_Error
type FT_Long (line 47) | typedef FT_Long
function FT_DEFINE_SERVICE (line 55) | FT_DEFINE_SERVICE( PsInfo )
FILE: Antario/LIB/freetype/freetype/internal/services/svsfnt.h
type FT_Error (line 39) | typedef FT_Error
type FT_Error (line 57) | typedef FT_Error
function FT_DEFINE_SERVICE (line 65) | FT_DEFINE_SERVICE( SFNT_Table )
FILE: Antario/LIB/freetype/freetype/internal/services/svttcmap.h
type TT_CMapInfo (line 57) | typedef struct TT_CMapInfo_
type FT_Error (line 65) | typedef FT_Error
function FT_DEFINE_SERVICE (line 70) | FT_DEFINE_SERVICE( TTCMaps )
FILE: Antario/LIB/freetype/freetype/internal/services/svtteng.h
function FT_DEFINE_SERVICE (line 39) | FT_DEFINE_SERVICE( TrueTypeEngine )
FILE: Antario/LIB/freetype/freetype/internal/services/svttglyf.h
type FT_ULong (line 31) | typedef FT_ULong
function FT_DEFINE_SERVICE (line 36) | FT_DEFINE_SERVICE( TTGlyf )
FILE: Antario/LIB/freetype/freetype/internal/services/svwinfnt.h
type FT_Error (line 31) | typedef FT_Error
function FT_DEFINE_SERVICE (line 36) | FT_DEFINE_SERVICE( WinFnt )
FILE: Antario/LIB/freetype/freetype/internal/sfnt.h
type FT_Error (line 113) | typedef FT_Error
type FT_Error (line 179) | typedef FT_Error
type FT_Error (line 220) | typedef FT_Error
type FT_Error (line 259) | typedef FT_Error
type FT_Error (line 304) | typedef FT_Error
type FT_Error (line 337) | typedef FT_Error
type FT_Error (line 366) | typedef FT_Error
type FT_Error (line 393) | typedef FT_Error
type FT_Error (line 421) | typedef FT_Error
type FT_Error (line 478) | typedef FT_Error
type FT_Bool (line 519) | typedef FT_Bool
type FT_Error (line 558) | typedef FT_Error
type FT_Error (line 588) | typedef FT_Error
type FT_Bool (line 622) | typedef FT_Bool
type FT_Error (line 651) | typedef FT_Error
type FT_Int (line 692) | typedef FT_Int
type SFNT_Interface (line 710) | typedef struct SFNT_Interface_
type SFNT_Interface (line 784) | typedef SFNT_Interface* SFNT_Service;
FILE: Antario/LIB/freetype/freetype/internal/t1types.h
type T1_EncodingRecRec_ (line 73) | struct T1_EncodingRecRec_
type PS_FontExtraRec (line 90) | typedef struct PS_FontExtraRec_
type T1_FontRec (line 97) | typedef struct T1_FontRec_
type CID_SubrsRec (line 133) | typedef struct CID_SubrsRec_
type AFM_TrackKernRec (line 153) | typedef struct AFM_TrackKernRec_
type AFM_KernPairRec (line 163) | typedef struct AFM_KernPairRec_
type AFM_FontInfoRec (line 172) | typedef struct AFM_FontInfoRec_
type T1_FaceRec_ (line 199) | struct T1_FaceRec_
type CID_FaceRec_ (line 200) | struct CID_FaceRec_
type T1_FaceRec (line 203) | typedef struct T1_FaceRec_
type CID_FaceRec (line 233) | typedef struct CID_FaceRec_
FILE: Antario/LIB/freetype/freetype/internal/tttypes.h
type TTC_HeaderRec_ (line 74) | struct TTC_HeaderRec_
type SFNT_HeaderRec (line 108) | typedef struct SFNT_HeaderRec_
type TT_TableRec (line 143) | typedef struct TT_TableRec_
type WOFF_HeaderRec (line 166) | typedef struct WOFF_HeaderRec_
type WOFF_TableRec (line 215) | typedef struct WOFF_TableRec_
type TT_LongMetricsRec (line 244) | typedef struct TT_LongMetricsRec_
type FT_Short (line 261) | typedef FT_Short TT_ShortMetrics;
type TT_NameRec (line 297) | typedef struct TT_NameRec_
type TT_LangTagRec (line 334) | typedef struct TT_LangTagRec_
type TT_NameTableRec (line 377) | typedef struct TT_NameTableRec_
type TT_GaspRangeRec (line 420) | typedef struct TT_GaspRangeRec_
type TT_GaspRec (line 451) | typedef struct TT_Gasp_
type TT_SBit_MetricsRec (line 508) | typedef struct TT_SBit_MetricsRec_
type TT_SBit_SmallMetricsRec (line 550) | typedef struct TT_SBit_Small_Metrics_
type TT_SBit_LineMetricsRec (line 616) | typedef struct TT_SBit_LineMetricsRec_
type TT_SBit_RangeRec (line 680) | typedef struct TT_SBit_RangeRec_
type TT_SBit_StrikeRec (line 750) | typedef struct TT_SBit_StrikeRec_
type TT_SBit_ComponentRec (line 791) | typedef struct TT_SBit_ComponentRec_
type TT_SBit_ScaleRec (line 828) | typedef struct TT_SBit_ScaleRec_
type TT_Post_20Rec (line 877) | typedef struct TT_Post_20Rec_
type TT_Post_25Rec (line 903) | typedef struct TT_Post_25_
type TT_Post_NamesRec (line 929) | typedef struct TT_Post_NamesRec_
type GX_BlendRec_ (line 957) | struct GX_BlendRec_
type TT_BDFRec (line 1014) | typedef struct TT_BDFRec_
type TT_FaceRec_ (line 1064) | struct TT_FaceRec_
type FT_Error (line 1068) | typedef FT_Error
type TT_LoaderRec_ (line 1072) | struct TT_LoaderRec_
type FT_Error (line 1103) | typedef FT_Error
type FT_Error (line 1140) | typedef FT_Error
type FT_Error (line 1163) | typedef FT_Error
type TT_SbitTableType (line 1183) | typedef enum TT_SbitTableType_
type TT_FaceRec (line 1536) | typedef struct TT_FaceRec_
type TT_GlyphZoneRec (line 1764) | typedef struct TT_GlyphZoneRec_
type TT_ExecContextRec_ (line 1785) | struct TT_ExecContextRec_
type TT_SizeRec_ (line 1796) | struct TT_SizeRec_
type TT_LoaderRec (line 1800) | typedef struct TT_LoaderRec_
FILE: Antario/LIB/freetype/freetype/t1tables.h
type PS_FontInfoRec_ (line 89) | struct PS_FontInfoRec_
type PS_FontInfoRec_ (line 112) | struct PS_FontInfoRec_
type PS_FontInfoRec (line 124) | typedef PS_FontInfoRec T1_FontInfo;
type PS_PrivateRec (line 137) | typedef struct PS_PrivateRec_
type PS_PrivateRec_ (line 186) | struct PS_PrivateRec_
type PS_PrivateRec (line 198) | typedef PS_PrivateRec T1_Private;
type T1_Blend_Flags (line 227) | typedef enum T1_Blend_Flags_
type PS_DesignMapRec (line 284) | typedef struct PS_DesignMap_
type PS_DesignMapRec (line 293) | typedef PS_DesignMapRec T1_DesignMap;
type PS_BlendRec (line 296) | typedef struct PS_BlendRec_
type PS_BlendRec (line 328) | typedef PS_BlendRec T1_Blend;
type CID_FaceDictRec (line 348) | typedef struct CID_FaceDictRec_
type CID_FaceDictRec_ (line 377) | struct CID_FaceDictRec_
type CID_FaceDictRec (line 390) | typedef CID_FaceDictRec CID_FontDict;
type CID_FaceInfoRec (line 401) | typedef struct CID_FaceInfoRec_
type CID_FaceInfoRec_ (line 439) | struct CID_FaceInfoRec_
type CID_FaceInfoRec (line 451) | typedef CID_FaceInfoRec CID_Info;
type T1_EncodingType (line 564) | typedef enum T1_EncodingType_
type PS_Dict_Keys (line 635) | typedef enum PS_Dict_Keys_
FILE: Antario/LIB/freetype/freetype/tttables.h
type TT_Header_ (line 85) | struct TT_Header_
type TT_HoriHeader (line 201) | typedef struct TT_HoriHeader_
type TT_VertHeader (line 319) | typedef struct TT_VertHeader_
type TT_OS2 (line 376) | typedef struct TT_OS2_
type TT_Postscript (line 451) | typedef struct TT_Postscript_
type TT_PCLT (line 478) | typedef struct TT_PCLT_
type TT_MaxProfile (line 568) | typedef struct TT_MaxProfile_
type FT_Sfnt_Tag (line 621) | typedef enum FT_Sfnt_Tag_
FILE: Antario/Menu.cpp
function Detach (line 5) | void Detach() { g_Settings.bCheatActive = false; }
FILE: Antario/SDK/CGlobalVarsBase.h
function class (line 3) | class CGlobalVarsBase
FILE: Antario/SDK/CHandle.h
function class (line 12) | class IHandleEntity
function class (line 20) | class CBaseHandle
function CBaseHandle (line 95) | CBaseHandle(handle)
FILE: Antario/SDK/CInput.h
type CRC32_t (line 46) | typedef unsigned long CRC32_t;
function class (line 48) | class CUserCmd
function class (line 71) | class CVerifiedUserCmd
function class (line 78) | class CInput
type JoystickAxis_t (line 116) | enum JoystickAxis_t
type ButtonCode_t (line 134) | enum ButtonCode_t : int
type MouseCodeState_t (line 311) | enum MouseCodeState_t
FILE: Antario/SDK/CPrediction.h
function class (line 11) | class IMoveHelper
type CMoveData (line 21) | struct CMoveData { byte data[184]; }
function class (line 23) | class IGameMovement
function class (line 46) | class CPrediction
FILE: Antario/SDK/ClientClass.h
type IClientNetworkable (line 8) | typedef IClientNetworkable* (*CreateClientClassFn)(int entnum, int ser...
type IClientNetworkable (line 9) | typedef IClientNetworkable* (*CreateEventFn)();
function class (line 11) | class ClientClass
FILE: Antario/SDK/Definitions.h
type class (line 7) | enum class
type class (line 288) | enum class
type EntityFlags (line 306) | enum EntityFlags : int
type class (line 319) | enum class
type class (line 377) | enum class
function class (line 392) | class WeaponInfo_t {
function class (line 498) | class CWeaponSystem
FILE: Antario/SDK/IBaseClientDll.h
function class (line 5) | class IBaseClientDLL
FILE: Antario/SDK/IClientEntity.h
type SpatializationInfo_t (line 5) | struct SpatializationInfo_t
FILE: Antario/SDK/IClientEntityList.h
function class (line 4) | class IClientEntityList
FILE: Antario/SDK/IClientMode.h
type class (line 7) | enum class
type class (line 18) | enum class
function class (line 25) | class CViewSetup
function class (line 45) | class IClientMode
FILE: Antario/SDK/IClientNetworkable.h
function class (line 7) | class IClientNetworkable
FILE: Antario/SDK/IClientRenderable.h
type ClientShadowHandle_t (line 5) | typedef unsigned short ClientShadowHandle_t;
type ClientRenderHandle_t (line 6) | typedef unsigned short ClientRenderHandle_t;
type ModelInstanceHandle_t (line 7) | typedef unsigned short ModelInstanceHandle_t;
type uint8 (line 8) | typedef unsigned char uint8;
type model_t (line 11) | struct model_t
type RenderableInstance_t (line 14) | struct RenderableInstance_t
function class (line 19) | class IClientRenderable
FILE: Antario/SDK/IClientThinkable.h
type CClientThinkHandlePtr (line 5) | typedef CClientThinkHandlePtr* ClientThinkHandle_t;
function class (line 7) | class IClientThinkable
FILE: Antario/SDK/IClientUnknown.h
function class (line 11) | class ICollideable
FILE: Antario/SDK/IGameEvent.h
function class (line 8) | class IGameEvent
FILE: Antario/SDK/IVEngineClient.h
type InputContextHandle_t__ (line 14) | struct InputContextHandle_t__
type client_textmessage_t (line 15) | struct client_textmessage_t
type model_t (line 16) | struct model_t
function class (line 27) | class INetChannelInfo
type Frustum_t (line 81) | struct Frustum_t
type con_nprint_s (line 117) | struct con_nprint_s
FILE: Antario/SDK/KeyValues.h
function class (line 44) | class KeyValues
FILE: Antario/SDK/PlayerInfo.h
type PlayerInfo_t (line 3) | typedef struct PlayerInfo_s
FILE: Antario/SDK/Recv.h
type SendPropType (line 3) | typedef enum
function IsInitialized (line 152) | bool IsInitialized() const;
function RecvProp (line 185) | inline RecvProp* RecvTable::GetProp(int i)
function SetInitialized (line 195) | inline void RecvTable::SetInitialized(bool bInitialized)
function SetInMainList (line 205) | inline void RecvTable::SetInMainList(bool bInList)
function InitArray (line 216) | inline void RecvProp::InitArray(int nElements, int elementStride)
function SetNumElements (line 228) | inline void RecvProp::SetNumElements(int nElements)
function SetElementStride (line 238) | inline void RecvProp::SetElementStride(int stride)
function RecvTable (line 258) | inline RecvTable* RecvProp::GetDataTable() const
function SetDataTable (line 263) | inline void RecvProp::SetDataTable(RecvTable *pTable)
function SetProxyFn (line 273) | inline void RecvProp::SetProxyFn(RecvVarProxyFn fn)
function SetDataTableProxyFn (line 283) | inline void RecvProp::SetDataTableProxyFn(DataTableRecvVarProxyFn fn)
function SetOffset (line 293) | inline void RecvProp::SetOffset(int o)
function RecvProp (line 298) | inline RecvProp* RecvProp::GetArrayProp() const
function SetArrayProp (line 303) | inline void RecvProp::SetArrayProp(RecvProp *pProp)
function SetArrayLengthProxy (line 308) | inline void RecvProp::SetArrayLengthProxy(ArrayLengthRecvProxyFn proxy)
function SetInsideArray (line 323) | inline void RecvProp::SetInsideArray()
function SetExtraData (line 333) | inline void RecvProp::SetExtraData(const void *pData)
function SetParentArrayPropName (line 343) | inline void RecvProp::SetParentArrayPropName(const char *pArrayPropName)
FILE: Antario/SDK/VMatrix.h
type cplane_t (line 4) | struct cplane_t
function class (line 14) | class matrix3x4_t
function Init (line 31) | void Init(const Vector& xAxis, const Vector& yAxis, const Vector& zAxis,...
function SetOrigin (line 47) | inline void SetOrigin(Vector const & p)
function Invalidate (line 54) | inline void Invalidate(void)
function class (line 70) | class VMatrix
FILE: Antario/SDK/Vector.h
type vec_t (line 48) | typedef float vec_t;
function class (line 50) | class Vector
function Init (line 105) | inline void Vector::Init(float ix, float iy, float iz)
function Vector (line 111) | inline Vector::Vector(float X, float Y, float Z)
function Vector (line 117) | inline Vector::Vector(void) { x = 0; y = 0; z = 0; }
function Zero (line 119) | inline void Vector::Zero()
function VectorClear (line 124) | inline void VectorClear(Vector& a)
function const (line 142) | inline float Vector::operator[](int i) const
function src (line 148) | inline bool Vector::operator==(const Vector& src) const
function src (line 155) | inline bool Vector::operator!=(const Vector& src) const
function VectorCopy (line 162) | inline void VectorCopy(const Vector& src, Vector& dst)
function Vector (line 170) | inline Vector& Vector::operator+=(const Vector& v)
function Vector (line 178) | inline Vector& Vector::operator-=(const Vector& v)
function Vector (line 186) | inline Vector& Vector::operator*=(float fl)
function Vector (line 195) | inline Vector& Vector::operator*=(const Vector& v)
function Vector (line 205) | inline Vector& Vector::operator+=(float fl)
function Vector (line 214) | inline Vector& Vector::operator-=(float fl)
function Vector (line 223) | inline Vector& Vector::operator/=(float fl)
function Vector (line 234) | inline Vector& Vector::operator/=(const Vector& v)
function Length (line 245) | inline float Vector::Length(void) const
function Length2D (line 258) | inline float Vector::Length2D(void) const
function Length2DSqr (line 271) | inline float Vector::Length2DSqr(void) const
function Vector (line 276) | inline Vector CrossProduct(const Vector& a, const Vector& b)
function DistTo (line 281) | float Vector::DistTo(const Vector &vOther) const
function DistToSqr (line 291) | float Vector::DistToSqr(const Vector &vOther) const
function Vector (line 302) | inline Vector Vector::Normalize()
function NormalizeInPlace (line 322) | inline float Vector::NormalizeInPlace()
function MulAdd (line 336) | inline void Vector::MulAdd(const Vector& a, const Vector& b, float scalar)
function VectorNormalize (line 343) | inline float VectorNormalize(Vector& v)
function VectorNormalize (line 360) | inline float VectorNormalize(float * v)
function Vector (line 384) | inline Vector Vector::operator*(float fl) const
function Vector (line 393) | inline Vector Vector::operator*(const Vector& v) const
function Vector (line 402) | inline Vector Vector::operator/(float fl) const
function Vector (line 411) | inline Vector Vector::operator/(const Vector& v) const
function Dot (line 419) | inline float Vector::Dot(const Vector& vOther) const
function VectorLength (line 430) | inline float VectorLength(const Vector& v)
function VectorSubtract (line 437) | inline void VectorSubtract(const Vector& a, const Vector& b, Vector& c)
function VectorAdd (line 447) | inline void VectorAdd(const Vector& a, const Vector& b, Vector& c)
function VectorMAInline (line 469) | inline void VectorMAInline(const float* start, float scale, const float*...
function VectorMAInline (line 476) | inline void VectorMAInline(const Vector& start, float scale, const Vecto...
function VectorMA (line 483) | inline void VectorMA(const Vector& start, float scale, const Vector& dir...
function VectorMA (line 488) | inline void VectorMA(const float * start, float scale, const float *dire...
function IsFinite (line 533) | inline bool IsFinite(float f)
function class (line 542) | class Vector2D
function Vector2D (line 1177) | inline Vector2D Vector2D::operator*(const float fl) const
function Vector2D (line 1184) | inline Vector2D Vector2D::operator*(const Vector2D& v) const
function Vector2D (line 1191) | inline Vector2D Vector2D::operator/(const float fl) const
function Vector2D (line 1198) | inline Vector2D Vector2D::operator/(const Vector2D& v) const
function class (line 1211) | class QAngle
FILE: Antario/Settings.h
function class (line 8) | class Settings
FILE: Antario/Utils/Color.h
function const (line 3) | struct Color
function Color (line 43) | constexpr Color& FromHSV(float h, float s, float v)
function colfabs (line 131) | constexpr float colfabs(const float& x) { return x < 0 ? x * -1 : x; }
FILE: Antario/Utils/DrawManager.cpp
type Vertex (line 7) | struct Vertex
function SPoint (line 323) | SPoint DrawManager::GetScreenCenter() const
FILE: Antario/Utils/DrawManager.h
type GradientType (line 14) | enum GradientType
function class (line 16) | class DrawManager
type FontNames (line 90) | enum FontNames : int
function catch (line 97) | struct Fonts
function OnLostDevice (line 114) | void OnLostDevice()
function OnResetDevice (line 128) | void OnResetDevice(LPDIRECT3DDEVICE9 pDevice)
type GradientType (line 149) | enum GradientType
FILE: Antario/Utils/Font.cpp
type Vertex (line 16) | struct Vertex
function SPoint (line 209) | SPoint Font::GetTextDimensions(const T& str, bool bDropShadow)
FILE: Antario/Utils/Font.h
type FontFlags (line 22) | enum FontFlags : int
type GlyphInfo (line 30) | struct GlyphInfo
function class (line 39) | class Font
FILE: Antario/Utils/GlobalVars.cpp
type g (line 3) | namespace g
FILE: Antario/Utils/GlobalVars.h
function namespace (line 5) | namespace g
FILE: Antario/Utils/Interfaces.cpp
type interfaces (line 26) | namespace interfaces
function T (line 29) | T* CaptureInterface(const char* szModuleName, const char* szInterfaceV...
function Init (line 42) | void Init()
FILE: Antario/Utils/Interfaces.h
function namespace (line 5) | namespace interfaces
FILE: Antario/Utils/NetvarManager.h
function class (line 9) | class NetvarTree
FILE: Antario/Utils/SPoint.h
function class (line 6) | class SPoint
FILE: Antario/Utils/SRect.h
function class (line 4) | class SRect
FILE: Antario/Utils/Utils.h
function class (line 13) | class Utils
function FindSignature (line 24) | static uintptr_t FindSignature(const char* szModule, const char* szSigna...
function std (line 61) | static std::string SetupStringParams(std::string szBasicString)
function GetCurrentSystemTime (line 93) | static void GetCurrentSystemTime(tm& timeInfo)
function Log (line 106) | static void Log(const std::string& str)
function Log (line 125) | static void Log(const HRESULT hr)
function WorldToScreen (line 142) | static bool WorldToScreen(const Vector &origin, Vector &screen)
FILE: Antario/dllmain.cpp
function DWORD (line 7) | DWORD WINAPI OnDllAttach(PVOID base)
function VOID (line 28) | VOID WINAPI OnDllDetach()
function BOOL (line 40) | BOOL WINAPI DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpReserved)
Condensed preview — 153 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,549K chars).
[
{
"path": ".gitignore",
"chars": 481,
"preview": "# Prerequisites\n*.d\n\n# Compiled Object files\n*.slo\n*.lo\n*.o\n*.obj\n\n# Precompiled Headers\n*.gch\n*.pch\n\n# Compiled Dynamic"
},
{
"path": "Antario/EventListener.h",
"chars": 535,
"preview": "#pragma once\n#include <vector>\n#include \"SDK\\IGameEvent.h\"\n\nclass EventListener : public IGameEventListener2\n{\npublic:\n "
},
{
"path": "Antario/Features/ESP.cpp",
"chars": 3488,
"preview": "#include \"ESP.h\"\n#include \"..\\Settings.h\"\n#include \"..\\Utils\\Utils.h\"\n#include \"..\\SDK\\IVEngineClient.h\"\n#include \"..\\SD"
},
{
"path": "Antario/Features/ESP.h",
"chars": 401,
"preview": "#pragma once\n#include \"..\\Utils\\GlobalVars.h\"\n#include \"..\\Utils\\DrawManager.h\"\n\n\nclass ESP\n{\npublic:\n void Render();"
},
{
"path": "Antario/Features/EnginePrediction.cpp",
"chars": 1940,
"preview": "#include \"EnginePrediction.h\"\n#include \"..\\SDK\\CInput.h\"\n#include \"..\\SDK\\CEntity.h\"\n#include \"..\\Utils\\GlobalVars.h\"\n#i"
},
{
"path": "Antario/Features/EnginePrediction.h",
"chars": 97,
"preview": "#pragma once\n\nnamespace engine_prediction\n{\n void RunEnginePred();\n void EndEnginePred();\n}"
},
{
"path": "Antario/Features/Features.h",
"chars": 260,
"preview": "#pragma once\n/*\n* Header with all \"features\" directory headers included\n* Used to make hooks look clean with its \"in"
},
{
"path": "Antario/Features/Misc.h",
"chars": 1071,
"preview": "#pragma once\n#include \"..\\Utils\\GlobalVars.h\"\n#include \"..\\Settings.h\"\n\nclass Misc\n{\npublic:\n void OnCreateMove()\n "
},
{
"path": "Antario/GUI/GUI.cpp",
"chars": 41040,
"preview": "#include \"GUI.h\"\n#include \"..\\Settings.h\"\n\n#include <execution>\n#include <algorithm>\n\n\nusing namespace ui;\n\n// Defined t"
},
{
"path": "Antario/GUI/GUI.h",
"chars": 16855,
"preview": "#pragma once\n#include <vector>\n#include \"..\\Utils\\DrawManager.h\"\n\n#pragma warning(disable : 4244) // disable data loss w"
},
{
"path": "Antario/Hooks.cpp",
"chars": 7146,
"preview": "#include <thread>\n#include \"Hooks.h\"\n#include \"Utils\\Utils.h\"\n#include \"Features\\Features.h\"\n\nMisc g_Misc;\nHooks "
},
{
"path": "Antario/Hooks.h",
"chars": 4379,
"preview": "#pragma once\n\n#include \"Utils\\DrawManager.h\"\n#include \"Utils\\Interfaces.h\"\n#include \"SDK\\IClientMode.h\"\n#include \"SDK\\IS"
},
{
"path": "Antario/LIB/freetype/freetype/config/ftconfig.h",
"chars": 18884,
"preview": "/****************************************************************************\n *\n * ftconfig.h\n *\n * ANSI-specific con"
},
{
"path": "Antario/LIB/freetype/freetype/config/ftheader.h",
"chars": 23228,
"preview": "/****************************************************************************\n *\n * ftheader.h\n *\n * Build macros of t"
},
{
"path": "Antario/LIB/freetype/freetype/config/ftmodule.h",
"chars": 1393,
"preview": "/*\n * This file registers the FreeType modules compiled into the library.\n *\n * If you use GNU make, this file IS NOT US"
},
{
"path": "Antario/LIB/freetype/freetype/config/ftoption.h",
"chars": 38741,
"preview": "/****************************************************************************\n *\n * ftoption.h\n *\n * User-selectable c"
},
{
"path": "Antario/LIB/freetype/freetype/config/ftstdlib.h",
"chars": 4307,
"preview": "/****************************************************************************\n *\n * ftstdlib.h\n *\n * ANSI-specific lib"
},
{
"path": "Antario/LIB/freetype/freetype/freetype.h",
"chars": 165050,
"preview": "/****************************************************************************\n *\n * freetype.h\n *\n * FreeType high-lev"
},
{
"path": "Antario/LIB/freetype/freetype/ftadvanc.h",
"chars": 5479,
"preview": "/****************************************************************************\n *\n * ftadvanc.h\n *\n * Quick computation"
},
{
"path": "Antario/LIB/freetype/freetype/ftbbox.h",
"chars": 2652,
"preview": "/****************************************************************************\n *\n * ftbbox.h\n *\n * FreeType exact bbox"
},
{
"path": "Antario/LIB/freetype/freetype/ftbdf.h",
"chars": 5336,
"preview": "/****************************************************************************\n *\n * ftbdf.h\n *\n * FreeType API for acc"
},
{
"path": "Antario/LIB/freetype/freetype/ftbitmap.h",
"chars": 9055,
"preview": "/****************************************************************************\n *\n * ftbitmap.h\n *\n * FreeType utility "
},
{
"path": "Antario/LIB/freetype/freetype/ftbzip2.h",
"chars": 2745,
"preview": "/****************************************************************************\n *\n * ftbzip2.h\n *\n * Bzip2-compressed s"
},
{
"path": "Antario/LIB/freetype/freetype/ftcache.h",
"chars": 33870,
"preview": "/****************************************************************************\n *\n * ftcache.h\n *\n * FreeType Cache sub"
},
{
"path": "Antario/LIB/freetype/freetype/ftchapters.h",
"chars": 2510,
"preview": "/****************************************************************************\n *\n * This file defines the structure of t"
},
{
"path": "Antario/LIB/freetype/freetype/ftcid.h",
"chars": 4036,
"preview": "/****************************************************************************\n *\n * ftcid.h\n *\n * FreeType API for acc"
},
{
"path": "Antario/LIB/freetype/freetype/ftcolor.h",
"chars": 8794,
"preview": "/****************************************************************************\n *\n * ftcolor.h\n *\n * FreeType's glyph c"
},
{
"path": "Antario/LIB/freetype/freetype/ftdriver.h",
"chars": 47451,
"preview": "/****************************************************************************\n *\n * ftdriver.h\n *\n * FreeType API for "
},
{
"path": "Antario/LIB/freetype/freetype/fterrdef.h",
"chars": 12336,
"preview": "/****************************************************************************\n *\n * fterrdef.h\n *\n * FreeType error co"
},
{
"path": "Antario/LIB/freetype/freetype/fterrors.h",
"chars": 8872,
"preview": "/****************************************************************************\n *\n * fterrors.h\n *\n * FreeType error co"
},
{
"path": "Antario/LIB/freetype/freetype/ftfntfmt.h",
"chars": 2227,
"preview": "/****************************************************************************\n *\n * ftfntfmt.h\n *\n * Support functions"
},
{
"path": "Antario/LIB/freetype/freetype/ftgasp.h",
"chars": 4152,
"preview": "/****************************************************************************\n *\n * ftgasp.h\n *\n * Access of TrueType'"
},
{
"path": "Antario/LIB/freetype/freetype/ftglyph.h",
"chars": 18509,
"preview": "/****************************************************************************\n *\n * ftglyph.h\n *\n * FreeType convenien"
},
{
"path": "Antario/LIB/freetype/freetype/ftgxval.h",
"chars": 10639,
"preview": "/****************************************************************************\n *\n * ftgxval.h\n *\n * FreeType API for v"
},
{
"path": "Antario/LIB/freetype/freetype/ftgzip.h",
"chars": 4170,
"preview": "/****************************************************************************\n *\n * ftgzip.h\n *\n * Gzip-compressed str"
},
{
"path": "Antario/LIB/freetype/freetype/ftimage.h",
"chars": 39153,
"preview": "/****************************************************************************\n *\n * ftimage.h\n *\n * FreeType glyph ima"
},
{
"path": "Antario/LIB/freetype/freetype/ftincrem.h",
"chars": 10322,
"preview": "/****************************************************************************\n *\n * ftincrem.h\n *\n * FreeType incremen"
},
{
"path": "Antario/LIB/freetype/freetype/ftlcdfil.h",
"chars": 11969,
"preview": "/****************************************************************************\n *\n * ftlcdfil.h\n *\n * FreeType API for "
},
{
"path": "Antario/LIB/freetype/freetype/ftlist.h",
"chars": 7114,
"preview": "/****************************************************************************\n *\n * ftlist.h\n *\n * Generic list suppor"
},
{
"path": "Antario/LIB/freetype/freetype/ftlzw.h",
"chars": 2726,
"preview": "/****************************************************************************\n *\n * ftlzw.h\n *\n * LZW-compressed strea"
},
{
"path": "Antario/LIB/freetype/freetype/ftmac.h",
"chars": 7793,
"preview": "/****************************************************************************\n *\n * ftmac.h\n *\n * Additional Mac-speci"
},
{
"path": "Antario/LIB/freetype/freetype/ftmm.h",
"chars": 21811,
"preview": "/****************************************************************************\n *\n * ftmm.h\n *\n * FreeType Multiple Mas"
},
{
"path": "Antario/LIB/freetype/freetype/ftmodapi.h",
"chars": 21816,
"preview": "/****************************************************************************\n *\n * ftmodapi.h\n *\n * FreeType modules "
},
{
"path": "Antario/LIB/freetype/freetype/ftmoderr.h",
"chars": 6598,
"preview": "/****************************************************************************\n *\n * ftmoderr.h\n *\n * FreeType module e"
},
{
"path": "Antario/LIB/freetype/freetype/ftotval.h",
"chars": 5360,
"preview": "/****************************************************************************\n *\n * ftotval.h\n *\n * FreeType API for v"
},
{
"path": "Antario/LIB/freetype/freetype/ftoutln.h",
"chars": 17481,
"preview": "/****************************************************************************\n *\n * ftoutln.h\n *\n * Support for the FT"
},
{
"path": "Antario/LIB/freetype/freetype/ftparams.h",
"chars": 5606,
"preview": "/****************************************************************************\n *\n * ftparams.h\n *\n * FreeType API for "
},
{
"path": "Antario/LIB/freetype/freetype/ftpfr.h",
"chars": 4924,
"preview": "/****************************************************************************\n *\n * ftpfr.h\n *\n * FreeType API for acc"
},
{
"path": "Antario/LIB/freetype/freetype/ftrender.h",
"chars": 6627,
"preview": "/****************************************************************************\n *\n * ftrender.h\n *\n * FreeType renderer"
},
{
"path": "Antario/LIB/freetype/freetype/ftsizes.h",
"chars": 4302,
"preview": "/****************************************************************************\n *\n * ftsizes.h\n *\n * FreeType size obje"
},
{
"path": "Antario/LIB/freetype/freetype/ftsnames.h",
"chars": 7742,
"preview": "/****************************************************************************\n *\n * ftsnames.h\n *\n * Simple interface "
},
{
"path": "Antario/LIB/freetype/freetype/ftstroke.h",
"chars": 21824,
"preview": "/****************************************************************************\n *\n * ftstroke.h\n *\n * FreeType path str"
},
{
"path": "Antario/LIB/freetype/freetype/ftsynth.h",
"chars": 3376,
"preview": "/****************************************************************************\n *\n * ftsynth.h\n *\n * FreeType synthesiz"
},
{
"path": "Antario/LIB/freetype/freetype/ftsystem.h",
"chars": 8540,
"preview": "/****************************************************************************\n *\n * ftsystem.h\n *\n * FreeType low-leve"
},
{
"path": "Antario/LIB/freetype/freetype/fttrigon.h",
"chars": 7403,
"preview": "/****************************************************************************\n *\n * fttrigon.h\n *\n * FreeType trigonom"
},
{
"path": "Antario/LIB/freetype/freetype/fttypes.h",
"chars": 14467,
"preview": "/****************************************************************************\n *\n * fttypes.h\n *\n * FreeType simple ty"
},
{
"path": "Antario/LIB/freetype/freetype/ftwinfnt.h",
"chars": 7979,
"preview": "/****************************************************************************\n *\n * ftwinfnt.h\n *\n * FreeType API for "
},
{
"path": "Antario/LIB/freetype/freetype/internal/autohint.h",
"chars": 7386,
"preview": "/****************************************************************************\n *\n * autohint.h\n *\n * High-level 'autoh"
},
{
"path": "Antario/LIB/freetype/freetype/internal/cffotypes.h",
"chars": 2352,
"preview": "/****************************************************************************\n *\n * cffotypes.h\n *\n * Basic OpenType/C"
},
{
"path": "Antario/LIB/freetype/freetype/internal/cfftypes.h",
"chars": 11856,
"preview": "/****************************************************************************\n *\n * cfftypes.h\n *\n * Basic OpenType/CF"
},
{
"path": "Antario/LIB/freetype/freetype/internal/ftcalc.h",
"chars": 13739,
"preview": "/****************************************************************************\n *\n * ftcalc.h\n *\n * Arithmetic computat"
},
{
"path": "Antario/LIB/freetype/freetype/internal/ftdebug.h",
"chars": 7553,
"preview": "/****************************************************************************\n *\n * ftdebug.h\n *\n * Debugging and logg"
},
{
"path": "Antario/LIB/freetype/freetype/internal/ftdrv.h",
"chars": 9192,
"preview": "/****************************************************************************\n *\n * ftdrv.h\n *\n * FreeType internal fo"
},
{
"path": "Antario/LIB/freetype/freetype/internal/ftgloadr.h",
"chars": 4497,
"preview": "/****************************************************************************\n *\n * ftgloadr.h\n *\n * The FreeType glyp"
},
{
"path": "Antario/LIB/freetype/freetype/internal/fthash.h",
"chars": 3256,
"preview": "/****************************************************************************\n *\n * fthash.h\n *\n * Hashing functions ("
},
{
"path": "Antario/LIB/freetype/freetype/internal/ftmemory.h",
"chars": 15433,
"preview": "/****************************************************************************\n *\n * ftmemory.h\n *\n * The FreeType memo"
},
{
"path": "Antario/LIB/freetype/freetype/internal/ftobjs.h",
"chars": 42362,
"preview": "/****************************************************************************\n *\n * ftobjs.h\n *\n * The FreeType privat"
},
{
"path": "Antario/LIB/freetype/freetype/internal/ftpsprop.h",
"chars": 1144,
"preview": "/****************************************************************************\n *\n * ftpsprop.h\n *\n * Get and set prope"
},
{
"path": "Antario/LIB/freetype/freetype/internal/ftrfork.h",
"chars": 7666,
"preview": "/****************************************************************************\n *\n * ftrfork.h\n *\n * Embedded resource "
},
{
"path": "Antario/LIB/freetype/freetype/internal/ftserv.h",
"chars": 25669,
"preview": "/****************************************************************************\n *\n * ftserv.h\n *\n * The FreeType servic"
},
{
"path": "Antario/LIB/freetype/freetype/internal/ftstream.h",
"chars": 23173,
"preview": "/****************************************************************************\n *\n * ftstream.h\n *\n * Stream handling ("
},
{
"path": "Antario/LIB/freetype/freetype/internal/fttrace.h",
"chars": 5191,
"preview": "/****************************************************************************\n *\n * fttrace.h\n *\n * Tracing handling ("
},
{
"path": "Antario/LIB/freetype/freetype/internal/ftvalid.h",
"chars": 5748,
"preview": "/****************************************************************************\n *\n * ftvalid.h\n *\n * FreeType validatio"
},
{
"path": "Antario/LIB/freetype/freetype/internal/internal.h",
"chars": 2748,
"preview": "/****************************************************************************\n *\n * internal.h\n *\n * Internal header f"
},
{
"path": "Antario/LIB/freetype/freetype/internal/psaux.h",
"chars": 43321,
"preview": "/****************************************************************************\n *\n * psaux.h\n *\n * Auxiliary functions "
},
{
"path": "Antario/LIB/freetype/freetype/internal/pshints.h",
"chars": 20866,
"preview": "/****************************************************************************\n *\n * pshints.h\n *\n * Interface to Posts"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svbdf.h",
"chars": 1714,
"preview": "/****************************************************************************\n *\n * svbdf.h\n *\n * The FreeType BDF ser"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svcfftl.h",
"chars": 2818,
"preview": "/****************************************************************************\n *\n * svcfftl.h\n *\n * The FreeType CFF t"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svcid.h",
"chars": 2117,
"preview": "/****************************************************************************\n *\n * svcid.h\n *\n * The FreeType CID fon"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svfntfmt.h",
"chars": 1341,
"preview": "/****************************************************************************\n *\n * svfntfmt.h\n *\n * The FreeType font"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svgldict.h",
"chars": 1846,
"preview": "/****************************************************************************\n *\n * svgldict.h\n *\n * The FreeType glyp"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svgxval.h",
"chars": 1719,
"preview": "/****************************************************************************\n *\n * svgxval.h\n *\n * FreeType API for v"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svkern.h",
"chars": 1072,
"preview": "/****************************************************************************\n *\n * svkern.h\n *\n * The FreeType Kernin"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svmetric.h",
"chars": 3748,
"preview": "/****************************************************************************\n *\n * svmetric.h\n *\n * The FreeType serv"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svmm.h",
"chars": 5455,
"preview": "/****************************************************************************\n *\n * svmm.h\n *\n * The FreeType Multiple"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svotval.h",
"chars": 1248,
"preview": "/****************************************************************************\n *\n * svotval.h\n *\n * The FreeType OpenT"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svpfr.h",
"chars": 1560,
"preview": "/****************************************************************************\n *\n * svpfr.h\n *\n * Internal PFR service"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svpostnm.h",
"chars": 1564,
"preview": "/****************************************************************************\n *\n * svpostnm.h\n *\n * The FreeType Post"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svprop.h",
"chars": 1677,
"preview": "/****************************************************************************\n *\n * svprop.h\n *\n * The FreeType proper"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svpscmap.h",
"chars": 4267,
"preview": "/****************************************************************************\n *\n * svpscmap.h\n *\n * The FreeType Post"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svpsinfo.h",
"chars": 2458,
"preview": "/****************************************************************************\n *\n * svpsinfo.h\n *\n * The FreeType Post"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svsfnt.h",
"chars": 2071,
"preview": "/****************************************************************************\n *\n * svsfnt.h\n *\n * The FreeType SFNT t"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svttcmap.h",
"chars": 2389,
"preview": "/****************************************************************************\n *\n * svttcmap.h\n *\n * The FreeType True"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svtteng.h",
"chars": 990,
"preview": "/****************************************************************************\n *\n * svtteng.h\n *\n * The FreeType TrueT"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svttglyf.h",
"chars": 1243,
"preview": "/****************************************************************************\n *\n * svttglyf.h\n *\n * The FreeType True"
},
{
"path": "Antario/LIB/freetype/freetype/internal/services/svwinfnt.h",
"chars": 1002,
"preview": "/****************************************************************************\n *\n * svwinfnt.h\n *\n * The FreeType Wind"
},
{
"path": "Antario/LIB/freetype/freetype/internal/sfnt.h",
"chars": 25564,
"preview": "/****************************************************************************\n *\n * sfnt.h\n *\n * High-level 'sfnt' dri"
},
{
"path": "Antario/LIB/freetype/freetype/internal/t1types.h",
"chars": 8138,
"preview": "/****************************************************************************\n *\n * t1types.h\n *\n * Basic Type1/Type2 "
},
{
"path": "Antario/LIB/freetype/freetype/internal/tttypes.h",
"chars": 54775,
"preview": "/****************************************************************************\n *\n * tttypes.h\n *\n * Basic SFNT/TrueTyp"
},
{
"path": "Antario/LIB/freetype/freetype/t1tables.h",
"chars": 22843,
"preview": "/****************************************************************************\n *\n * t1tables.h\n *\n * Basic Type 1/Type"
},
{
"path": "Antario/LIB/freetype/freetype/ttnameid.h",
"chars": 58791,
"preview": "/****************************************************************************\n *\n * ttnameid.h\n *\n * TrueType name ID "
},
{
"path": "Antario/LIB/freetype/freetype/tttables.h",
"chars": 25245,
"preview": "/****************************************************************************\n *\n * tttables.h\n *\n * Basic SFNT/TrueTy"
},
{
"path": "Antario/LIB/freetype/freetype/tttags.h",
"chars": 5053,
"preview": "/****************************************************************************\n *\n * tttags.h\n *\n * Tags for TrueType a"
},
{
"path": "Antario/LIB/freetype/ft2build.h",
"chars": 1111,
"preview": "/****************************************************************************\n *\n * ft2build.h\n *\n * FreeType 2 build "
},
{
"path": "Antario/Menu.cpp",
"chars": 3208,
"preview": "#include \"GUI\\GUI.h\"\n#include \"Settings.h\"\n\n\nvoid Detach() { g_Settings.bCheatActive = false; }\n\n\nvoid MenuMain::Initial"
},
{
"path": "Antario/SDK/CEntity.h",
"chars": 4382,
"preview": "#pragma once\n#include \"Definitions.h\"\n#include \"IClientUnknown.h\"\n#include \"IClientEntityList.h\"\n#include \"..\\Utils\\Util"
},
{
"path": "Antario/SDK/CGlobalVarsBase.h",
"chars": 979,
"preview": "#pragma once\n\nclass CGlobalVarsBase\n{\npublic:\n float realtime;\n int framecount;\n float absolutefr"
},
{
"path": "Antario/SDK/CHandle.h",
"chars": 6408,
"preview": "#pragma once\n\n#define NUM_ENT_ENTRY_BITS (11 + 2)\n#define NUM_ENT_ENTRIES (1 << NUM_ENT_ENTRY_BITS)\n#"
},
{
"path": "Antario/SDK/CInput.h",
"chars": 9074,
"preview": "#pragma once\n#include \"Vector.h\"\n\n#define MAX_SPLITSCREEN_CLIENT_BITS 2\n// this should == MAX_JOYSTICKS in InputEnums.h\n"
},
{
"path": "Antario/SDK/CPrediction.h",
"chars": 5263,
"preview": "#pragma once\n#include \"..\\Utils\\Utils.h\"\n\n#define MAX_SPLITSCREEN_PLAYERS 1\n\nclass CBaseHandle;\nclass C_BaseEntity;\nclas"
},
{
"path": "Antario/SDK/ClientClass.h",
"chars": 514,
"preview": "#pragma once\n#include \"Recv.h\"\n#include \"Definitions.h\"\n#include \"IClientNetworkable.h\"\n\nclass ClientClass;\n\ntypedef ICl"
},
{
"path": "Antario/SDK/Definitions.h",
"chars": 14595,
"preview": "#pragma once\n#include <Windows.h>\n\ntypedef void* (*CreateInterfaceFn) (const char *pName, int *pReturnCode);\nty"
},
{
"path": "Antario/SDK/IBaseClientDll.h",
"chars": 819,
"preview": "#pragma once\n#include \"CGlobalVarsBase.h\"\n#include \"ClientClass.h\"\n\nclass IBaseClientDLL\n{\npublic:\n // Connect appsys"
},
{
"path": "Antario/SDK/IClientEntity.h",
"chars": 556,
"preview": "#pragma once\n#include \"IClientUnknown.h\"\n\n\nstruct SpatializationInfo_t;\n\nclass IClientEntity : public IClientUnknown, pu"
},
{
"path": "Antario/SDK/IClientEntityList.h",
"chars": 732,
"preview": "#pragma once\n#include \"IClientEntity.h\"\n\nclass IClientEntityList\n{\npublic:\n virtual IClientNetworkable* GetClientNe"
},
{
"path": "Antario/SDK/IClientMode.h",
"chars": 2463,
"preview": "#pragma once\n#include \"Vector.h\"\n#include \"CEntity.h\"\n\nclass IPanel;\n\nenum class ClearFlags_t\n{\n VIEW_CLEAR_COLOR = 0"
},
{
"path": "Antario/SDK/IClientNetworkable.h",
"chars": 938,
"preview": "#pragma once\n\nclass IClientUnknown;\nclass ClientClass;\nclass bf_read;\n\nclass IClientNetworkable\n{\npublic:\n virtual IC"
},
{
"path": "Antario/SDK/IClientRenderable.h",
"chars": 3705,
"preview": "#pragma once\n\n#include \"VMatrix.h\"\n\ntypedef unsigned short ClientShadowHandle_t;\ntypedef unsigned short ClientRenderHand"
},
{
"path": "Antario/SDK/IClientThinkable.h",
"chars": 403,
"preview": "#pragma once\n\nclass IClientUnknown;\nclass CClientThinkHandlePtr;\ntypedef CClientThinkHandlePtr* ClientThinkHandle_t;\n\ncl"
},
{
"path": "Antario/SDK/IClientUnknown.h",
"chars": 920,
"preview": "#pragma once\n#include \"IClientNetworkable.h\"\n#include \"IClientRenderable.h\"\n#include \"IClientThinkable.h\"\n#include \"CHan"
},
{
"path": "Antario/SDK/IGameEvent.h",
"chars": 2892,
"preview": "#pragma once\n#include \"KeyValues.h\"\n#include \"CInput.h\"\n\n#define EVENT_DEBUG_ID_INIT 42\n#define EVENT_DEBUG_ID_SHUTDOWN "
},
{
"path": "Antario/SDK/ISurface.h",
"chars": 168,
"preview": "#pragma once\n#include \"..\\Utils\\Utils.h\"\n\nclass ISurface\n{\npublic:\n\tvoid UnlockCursor()\n\t{\n\t\treturn Utils::CallVFunc<66,"
},
{
"path": "Antario/SDK/IVEngineClient.h",
"chars": 22362,
"preview": "#pragma once\n\n#include \"Definitions.h\"\n#include \"KeyValues.h\"\n#include \"Color.h\"\n#include \"PlayerInfo.h\"\n#include \"Vecto"
},
{
"path": "Antario/SDK/KeyValues.h",
"chars": 16220,
"preview": "#pragma once\n#include <stdint.h>\n#include \"../Utils/Color.h\"\n\ntypedef void* FileHandle_t;\ntypedef void* GetSymbolProc_t;"
},
{
"path": "Antario/SDK/PlayerInfo.h",
"chars": 782,
"preview": "#pragma once\n\ntypedef struct PlayerInfo_s\n{\n __int64 unknown; //0x0000 \n union\n {\n __"
},
{
"path": "Antario/SDK/Recv.h",
"chars": 9227,
"preview": "#pragma once\n\ntypedef enum\n{\n DPT_Int = 0,\n DPT_Float,\n DPT_Vector,\n DPT_VectorXY,\n DPT_String,\n DPT_A"
},
{
"path": "Antario/SDK/VMatrix.h",
"chars": 7949,
"preview": "#pragma once\n#include \"Vector.h\"\n\nstruct cplane_t\n{\n Vector\tnormal;\n float\tdist;\n byte\ttype;\t\t\t// for fast side"
},
{
"path": "Antario/SDK/Vector.h",
"chars": 37223,
"preview": "#pragma once\n\n#ifdef NDEBUG\n#define Assert( _exp ) ((void)0)\n#else\n#define Assert(x)\n#endif\n\n#include \"Definitions.h\"\n#i"
},
{
"path": "Antario/Settings.cpp",
"chars": 5323,
"preview": "#include <functional>\n#include <ShlObj.h>\n\n#include \"Settings.h\"\n#include \"Hooks.h\"\n\n\n/**\n * \\brief Used to initialize s"
},
{
"path": "Antario/Settings.h",
"chars": 909,
"preview": "#pragma once\n#include \"GUI\\GUI.h\"\n#include <filesystem>\n\nusing namespace ui;\nnamespace fs = std::experimental::filesyste"
},
{
"path": "Antario/Utils/Color.h",
"chars": 3577,
"preview": "#pragma once\n\nstruct Color\n{\n int red, green, blue, alpha;\n\n constexpr Color() : red(0), green(0), blue(0), alpha("
},
{
"path": "Antario/Utils/DrawManager.cpp",
"chars": 11779,
"preview": "#include \"DrawManager.h\"\n\n// Init out global vars\nFonts g_Fonts;\nDrawManager g_Render;\n\nstruct Vertex\n{\n float "
},
{
"path": "Antario/Utils/DrawManager.h",
"chars": 6302,
"preview": "#pragma once\n\n#include \"Font.h\"\n#include \"SRect.h\" // Includes both SPoint and SRect\n#include \"..\\Utils\\Color.h\"\n#i"
},
{
"path": "Antario/Utils/Font.cpp",
"chars": 15620,
"preview": "#include \"Font.h\"\n#include <exception>\n\n/* SHGetFolderPathA */\n#include <shlobj_core.h>\n\n/* disable data loss warning */"
},
{
"path": "Antario/Utils/Font.h",
"chars": 2090,
"preview": "#pragma once\n#include <d3d9.h>\n#include <d3dx9.h>\n\n#include <string>\n#include <map>\n\n#include \"SPoint.h\"\n#include \"Color"
},
{
"path": "Antario/Utils/GlobalVars.cpp",
"chars": 167,
"preview": "#include \"GlobalVars.h\"\n\nnamespace g\n{\n CUserCmd* pCmd = nullptr;\n C_BaseEntity* pLocalEntity = null"
},
{
"path": "Antario/Utils/GlobalVars.h",
"chars": 196,
"preview": "#pragma once\n#include \"..\\SDK\\CInput.h\"\n#include \"..\\SDK\\CEntity.h\"\n\nnamespace g\n{\n extern CUserCmd* pCmd;\n e"
},
{
"path": "Antario/Utils/Interfaces.cpp",
"chars": 2851,
"preview": "#include \"Interfaces.h\"\n#include \"Utils.h\"\n\n#include \"..\\SDK\\IClientMode.h\"\n#include \"..\\SDK\\IBaseClientDll.h\"\n#include "
},
{
"path": "Antario/Utils/Interfaces.h",
"chars": 135,
"preview": "#pragma once\n#include <Windows.h>\n\n\nnamespace interfaces\n{\n // Used to initialize all the interfaces at one time\n "
},
{
"path": "Antario/Utils/NetvarManager.cpp",
"chars": 1453,
"preview": "#include \"NetvarManager.h\"\n#include \"..\\SDK\\IBaseClientDll.h\"\n\n#undef GetProp // fucnik recvtable and windoze usin the "
},
{
"path": "Antario/Utils/NetvarManager.h",
"chars": 2024,
"preview": "#pragma once\n#include <string>\n#include <vector>\n#include <unordered_map>\n#include <memory>\n\n#include \"..\\SDK\\Recv.h\"\n\nc"
},
{
"path": "Antario/Utils/SPoint.h",
"chars": 1912,
"preview": "#pragma once\n\n\n\n\nclass SPoint\n{\npublic:\n int x, y;\n constexpr SPoint() : x(0), y(0) {}\n constexpr SPoint(int po"
},
{
"path": "Antario/Utils/SRect.h",
"chars": 1812,
"preview": "#pragma once\n#include \"SPoint.h\"\n\nclass SRect\n{\npublic:\n int left, top, right, bottom;\n\n constexpr SRect() : left("
},
{
"path": "Antario/Utils/Utils.h",
"chars": 5980,
"preview": "#pragma once\n#include <Psapi.h>\n#include <iostream>\n#include <iomanip>\n#include <ctime>\n#include <chrono>\n#include \"..\\S"
},
{
"path": "Antario/dllmain.cpp",
"chars": 1963,
"preview": "#include <thread>\n#include \"Hooks.h\"\n#include \"Utils\\Utils.h\"\n#include \"Settings.h\"\n#include \"Utils\\DrawManager.h\"\n\nDWO"
},
{
"path": "Antario.sln",
"chars": 1046,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 15\nVisualStudioVersion = 15.0.27004.2005\nM"
},
{
"path": "Antario.sln.DotSettings.user",
"chars": 653,
"preview": "<wpf:ResourceDictionary xml:space=\"preserve\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:s=\"clr-namesp"
},
{
"path": "Antario.vcxproj",
"chars": 8858,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.microso"
},
{
"path": "Antario.vcxproj.filters",
"chars": 6287,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "Antario.vcxproj.user",
"chars": 215,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"15.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "LICENSE",
"chars": 1064,
"preview": "MIT License\n\nCopyright (c) 2017, wando.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof"
},
{
"path": "README.md",
"chars": 741,
"preview": "## Antario - CSGO Base\n\n### Features:\n\n * D3D9 menu with automatically adjusted positions of tabs, sections and selectab"
}
]
// ... and 1 more files (download for full content)
About this extraction
This page contains the full source code of the Wando1423/Antario GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 153 files (1.4 MB), approximately 377.6k tokens, and a symbol index with 670 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.