I'm using OpenTK (OpenGL wrapper for .NET) to draw 2D objects Generally speaking I'm drawing two elements(which consists of smaller objects)
public void Draw()
{
    DrawElement1();  // Element1 changes every 300ms
    DrawElement2();  // Element2 changes every 50ms
}
In current implementation I must call Draw every 50ms in order to keep Element2 in latest state. In this situation I pointlessly refresh Element1 5 times.
So I need some way to store rendered state of Element1 in order to speed up my drawing
public void Draw()
{
    if(needUpdateElement1)
       DrawElement1();
    else
       DrawRenderedElement1();
    DrawElement2();
}