check viewer.c in include folder for that-there is an example. that is the script that runs when you preview model from MED.

also, you dont need to have a 256x256 screen ive written a function for capturing a spesific region long ago, here:

Code:
#include <acknex.h>
#include <d3d9.h>

#define D3DXIFF_BMP 0
#define D3DXIFF_JPG 1
#define D3DXIFF_TGA 2
#define D3DXIFF_PNG 3
#define D3DXIFF_DDS 4
#define D3DXIFF_PPM 5
#define D3DXIFF_DIB 6
#define D3DXIFF_HDR 7
#define D3DXIFF_PFM 8
#define D3DXIFF_FORCE_DWORD 0x7fffffff

#define D3DBACKBUFFER_TYPE_MONO 0
#define D3DBACKBUFFER_TYPE_LEFT 1
#define D3DBACKBUFFER_TYPE_RIGHT 2
#define D3DBACKBUFFER_TYPE_FORCE_DWORD 0x7fffffff

long get_screenshot(int left,int right, int top, int bottom, STRING* filename)
{
	RECT ScreenRect;
	HRESULT hResult;
	LPDIRECT3DSURFACE9 pBackBuffer;
	LPDIRECT3DDEVICE9 device = (LPDIRECT3DDEVICE9)draw_begin();

   //RECT das abgelichtet wird =)
	ScreenRect.left = left;
	ScreenRect.right = right;
	ScreenRect.top = top;
	ScreenRect.bottom = bottom;
	var border_wait_time = 0;
	while(border_wait_time < 50){
		draw_line(vector(left,top,0), vector(0,0,255), 100);
		draw_line(vector(right,top,0), vector(0,0,255), 100);
		draw_line(vector(right,bottom,0), vector(0,0,255), 100);
		draw_line(vector(left,bottom,0), vector(0,0,255), 100);
		border_wait_time+=10*time_step;
		wait(1);
	}


	hResult = device->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&pBackBuffer);
	hResult = D3DXSaveSurfaceToFile(_chr(filename),D3DXIFF_PNG,pBackBuffer,NULL,&ScreenRect); 
	return(1);
}




3333333333