my code below I need to bind a shader to my program...
My code below has no shader code only code for my menu hook only 'gui interface"
#include "MenuClass.h"
oReset pReset;
oEndScene pEndScene;
QmoMenu dMenu;
LPDIRECT3DDEVICE9 g_pDevice = 0;
int xFontOffSet = 15;
int hackopt1;
int MenuHeight = 10;
int show=1;
int showfps = 1;
int b = 0;
int hack1 = 0;
int hack2 = 0;
int hack3 = 0;
int hack4 = 0;
int hack5 = 0;
int hack6 = 0;
int hack7 = 0;
int hack8 = 0;
int hack9 = 0;
int hack10 = 0;
void QmoMenu::CreateItem(int index, char * title, int *hack, int hackmaxval,int hacktype)
{
hackcount++;
HACKITEM[hackcount].index = index;
HACKITEM[hackcount].hack = hack;
HACKITEM[hackcount].hackmaxval = hackmaxval;
HACKITEM[hackcount].hacktype = hacktype;
PrintText(title, xFontOffSet, index*17,HACKITEM[hackcount].HCOLOR,pFont);
}
void QmoMenu::BuildMenu(char * menuname, int x, int y, int h, int w, DWORD TITLECOL, DWORD BACKCOLOR, DWORD BORDERCOLOR, LPDIRECT3DDEVICE9 pDevice)
{
if(GetAsyncKeyState(VK_INSERT)&1)show=(!show);
if(!show) {
DrawBox(0,0, 220, 400, BACKCOLOR, BORDERCOLOR, pDevice);
PrintText(menuname, x+100, y+50, BLUE, pFont);
CreateItem(1,"crosair", &hack1);
CreateItem(2,"wall anme", &hack2);
CreateItem(3,"speed hack", &hack3);
CreateItem(4,"full control", &hack4);
CreateItem(5,"autokill", &hack5);
CreateItem(6,"calibre p", &hack6);
CreateItem(7,"calibre s", &hack7);
CreateItem(8,"blalba", &hack8);
CreateItem(9,"cheat9blabla", &hack9);
CreateItem(10,"asdasd", &hack10);
RenderMenu();
}
}
void QmoMenu::RenderMenu()
{
if(GetAsyncKeyState(VK_DOWN)&1)
selector++;
if(GetAsyncKeyState(VK_UP)&1)
if(selector > 1)
selector--;
if (GetAsyncKeyState(VK_RIGHT)<0){
for(int i=0;i < (hackcount+1);i++){
if(selector == HACKITEM[i].index){
if(*HACKITEM[i].hack < HACKITEM[i].hackmaxval)
*HACKITEM[i].hack += 1;
}
}
}
if (GetAsyncKeyState(VK_LEFT)<0){
for(int i=0;i < (hackcount+1);i++){
if(selector == HACKITEM[i].index){
*HACKITEM[i].hack = 0;
Sleep(200);
}
}
}
for(int i=0;i < (hackcount+1);i++){
if(selector == HACKITEM[i].index)
HACKITEM[i].HCOLOR = GREEN;
else
HACKITEM[i].HCOLOR = RED;
}
for(int i=1; i<(hackcount+1); i++){
if(HACKITEM[i].hacktype == 0){
if(*HACKITEM[i].hack == 1)
PrintText("[ON]", xFontOffSet+150, HACKITEM[i].index*17,WHITE,pFont);
else
PrintText("[OFF]", xFontOffSet+150, HACKITEM[i].index*17,RED,pFont);
}
}
if(selector < 1)
selector = 1;
if(selector > hackcount)
selector = 1;
hackcount = 0;
}
void CrossHair(LPDIRECT3DDEVICE9 pDevice, D3DCOLOR Color)
{
D3DVIEWPORT9 Viewport1;
pDevice->GetViewport(&Viewport1);
DWORD ScreenX = Viewport1.Width / 2;
DWORD ScreenY = Viewport1.Height / 2;
D3DRECT rec1 = { ScreenX - 40, ScreenY, ScreenX + 40, ScreenY + 2 };
D3DRECT rec2 = { ScreenX, ScreenY - 40, ScreenX + 2, ScreenY + 40 };
pDevice->Clear(1, &rec1, D3DCLEAR_TARGET, RED, 0, 0);
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET, RED, 0, 0);
}
void TestThread()
{
if( hack1 == 1)
if(hack1) CrossHair(g_pDevice, RED);
}
void Wall ()
{
g_pDevice->SetRenderState(D3DRS_ZENABLE,false);
g_pDevice->SetRenderState(D3DRS_LIGHTING, true);
g_pDevice->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD);
g_pDevice->SetRenderState(D3DRS_AMBIENT, D3DCOLOR_ARGB(255,128,128,128));
}
void ReFont(LPDIRECT3DDEVICE9 pDevice)
{
if (g_pDevice != pDevice)
{
g_pDevice = pDevice;
try
{
if (dMenu.pFont != 0)
dMenu.pFont->Release();
} catch (...) {}
dMenu.pFont = 0;
D3DXCreateFontA(pDevice, 15, 0, FW_BOLD, 0, 0, DEFAULT_CHARSET, OUT_TT_ONLY_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial Black", &dMenu.pFont );
}
}
HRESULT WINAPI Reset(IDirect3DDevice9* pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters )
{
dMenu.pFont->OnLostDevice();
HRESULT hRet = pReset(pDevice, pPresentationParameters);
dMenu.pFont->OnResetDevice();
return hRet;
}
HRESULT WINAPI EndScene(LPDIRECT3DDEVICE9 pDevice)
{
ReFont(pDevice);
dMenu.BuildMenu("",0,0,0,0,BLUE,BLACK,GREEN,pDevice);
Wall ();
TestThread();
return pEndScene(pDevice);
}
int D3Dinit(void)
{
DWORD hD3D, adr, *vtbl;
hD3D=0;
do {
hD3D = (DWORD)GetModuleHandle("d3d9.dll");
Sleep(10);
} while(!hD3D);
adr = FindPattern(hD3D, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");
if (adr) {
memcpy(&vtbl,(void *)(adr+2),4);
pReset = (oReset) DetourFunction((PBYTE)vtbl[16] , (PBYTE)Reset ,5);
pEndScene = (oEndScene) DetourFunction((PBYTE)vtbl[42], (PBYTE)EndScene,5);
}
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH ) {
MessageBox(0, "Techno Tech 1", "Engine", MB_OK);
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)D3Dinit, NULL, NULL, NULL);
}
if( dwReason == DLL_PROCESS_DETACH) {
dMenu.pFont->Release();
}
return TRUE;
What I have tried:
I have tried to bind the shader but no luck so far