Unityのプラグイン(dll側)でOpenGL ESの処理をいろいろと行いUnity側に反映したいと考えております。

方法を調べてみると
https://docs.unity3d.com/ja/540/Manual/NativePluginInterface.html
と記載されており、Unity側でテクスチャの実体を生成して内容を書き換えるような形で
サンプルや内容が記載されておりました。
(調べ方が悪いのか、検索した結果は上記を検証した内容の記事が多かったです。)

実装したい事は
dll側で

glEnable( GL_TEXTURE_2D );
glGenTextures( 1, &m_TexID );
glBindTexture( GL_TEXTURE_2D, m_TexID );

を呼び出して、dll側でテクスチャの実体を生成してUnity側で描画したり

dll側で

glClearColor(r, g, b, a);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

を使用して画面をクリアーしたり

glViewport(x, y, w, h);

を使用してビューポートを指定したりする事は可能なのでしょうか。

※実行環境はUnity5.6.0f3で、OpenGL ESで動作するようにPlayer Setteingの
「Auto Graphics API」を変更しています。

また、
https://docs.unity3d.com/ja/540/ScriptReference/GL.InvalidateState.html
に記載されている

GL.InvalidateState();

を使用する必要はあるのでしょうか。
(GL.InvalidateStateの使用例とかも見つからなかったので、
リファレンスの内容では関係があるのか、どのようなタイミングで使用するのか今一つ判断がつきませんでした)

どなたか詳しい方がいれば、ご教授頂けますと幸いです。