+void
+context_enter (fips_api_t api, void *system_context_id)
+{
+ /* Do nothing if the application is setting the same context
+ * as is already current. */
+ if (current_context && current_context->system_id == system_context_id)
+ return;
+
+ if (current_context)
+ context_destroy (current_context);
+
+ current_context = context_create (api, system_context_id);
+
+ metrics_set_current_op (current_context->metrics,
+ METRICS_OP_SHADER + 0);
+ metrics_counter_start (current_context->metrics);