- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Examples

# OpenGLViewportRendererPlugin.cpp

    //-
    // ==========================================================================
    // Copyright 1995,2006,2008 Autodesk, Inc. All rights reserved.
    //
    // Use of this software is subject to the terms of the Autodesk
    // license agreement provided at the time of installation or download,
    // or which otherwise accompanies this software in either electronic
    // or hard copy form.
    // ==========================================================================
    //+

    #include <stdio.h>

    #include <OpenGLViewportRenderer.h>

    #include <maya/MGlobal.h>
    #include <maya/MString.h>
    #include <maya/MStringArray.h>
    #include <maya/MFnPlugin.h>

    #include <stdio.h>

    //
    // Plug-in functions
    //

    static OpenGLViewportRenderer *g_OpenGLRenderer = 0;
    static OpenGLViewportRendererHUD *g_OpenGLRendererHUD = 0;
    static OpenGLViewportRendererFullUI *g_OpenGLRendererFullUI = 0;

    MStatus initializePlugin( MObject obj )
    {
        MStatus   status = MStatus::kFailure;

        MFnPlugin plugin( obj, PLUGIN_COMPANY, "1.0", "Any");

        // Register the renderer
        //
        g_OpenGLRenderer = new OpenGLViewportRenderer();
        if (g_OpenGLRenderer)
        {
            status = g_OpenGLRenderer->registerRenderer();
            if (status != MStatus::kSuccess)
            {
                status.perror("Failed to register OpenGL renderer properly.");
            }
        }
        g_OpenGLRendererHUD = new OpenGLViewportRendererHUD();
        if (g_OpenGLRendererHUD)
        {
            status = g_OpenGLRendererHUD->registerRenderer();
            if (status != MStatus::kSuccess)
            {
                status.perror("Failed to register OpenGL renderer properly.");
            }
        }
        g_OpenGLRendererFullUI = new OpenGLViewportRendererFullUI();
        if (g_OpenGLRendererFullUI)
        {
            status = g_OpenGLRendererFullUI->registerRenderer();
            if (status != MStatus::kSuccess)
            {
                status.perror("Failed to register OpenGL renderer properly.");
            }
        }
        return status;
    }

    MStatus uninitializePlugin( MObject obj )
    {
        MStatus   status = MStatus::kSuccess;

        // Deregister the renderer
        //
        if (g_OpenGLRenderer)
        {
            status = g_OpenGLRenderer->deregisterRenderer();
            if (status != MStatus::kSuccess)
            {
                status.perror("Failed to deregister OpenGL renderer properly.");
            }
        }
        g_OpenGLRenderer = 0;
        if (g_OpenGLRendererHUD)
        {
            status = g_OpenGLRendererHUD->deregisterRenderer();
            if (status != MStatus::kSuccess)
            {
                status.perror("Failed to deregister OpenGL renderer properly.");
            }
        }
        g_OpenGLRendererHUD = 0;
        if (g_OpenGLRendererFullUI)
        {
            status = g_OpenGLRendererFullUI->deregisterRenderer();
            if (status != MStatus::kSuccess)
            {
                status.perror("Failed to deregister OpenGL renderer properly.");
            }
        }
        g_OpenGLRendererFullUI = 0;
        return status;
    }