- function glGet_MouseCoord(X,Y : integer) : Coord3D_t;
- var
- viewport: array [1..4] of Integer;
- modelview: array [1..16] of Double;
- projection: array [1..16] of Double;
- winZ: Single;
- begin
- glGetDoublev(GL_MODELVIEW_MATRIX, @modelview);
- glGetDoublev(GL_PROJECTION_MATRIX, @projection);
- glGetIntegerv(GL_VIEWPORT, @viewport);
- if (Y = 0) then Y := 1;
- glReadPixels(X, -Y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, @winZ);
- gluUnProject(X, viewport[4]-Y, winZ,@modelview, @projection, @viewport,
- Result.x, Result.y, Result.z);
- end;