Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following example uses the ICDraw function and the ICDrawStart, ICDrawStop, ICDrawFlush, and ICDrawEnd macros to draw data on the screen.
DWORD dwNumBuffers;
// Find out how many buffers need filling before drawing starts.
ICGetBuffersWanted(hIC, &dwNumBuffers);
for (dw = 0; dw < dwNumBuffers; dw++)
{
ICDraw(hIC, 0, lpFormat, lpData, cbData, dw); // fill the pipeline
// Point lpFormat and lpData to next format and buffer.
}
ICDrawStart(hIC); // starts the clock
dw = 0;
while (fPlaying)
{
ICDraw(hIC, 0, lpFormat, lpData, chData, dw); // fill more buffers
// Point lpFormat and lpData to next format and buffer,
// update dw.
}
ICDrawStop(hIC); // stops drawing and decompressing when done
ICDrawFlush(hIC); // flushes any existing buffers
ICDrawEnd(hIC); // ends decompression