#ifndef PLUGIN_H
#define PLUGIN_H

#include <stdio.h>
#include <windows.h>
#include <string>
#include <d3dx9.h>
#include "manifest.h"

class Plugin
{
	public:
		Plugin(Manifest* manifest); // Constructor to create plugin with supplied manifest.
		Plugin();
		~Plugin();

		int	Version; // The plugin version.
		std::string Name; // The plugin name.
		std::string Description; // The plugin description.
		
		void (*Init)(IDirect3DDevice9*); // Initialisation function pointer.            
		void (*Quit)(); // Quit function pointer.          
		void (*Render)(PluginData* Data); // Render function pointer.

		PluginAttributes* Properties; // The plugin properties.
};

#endif