I don't know much about rendering in newer versions (I only mod 1.6.4) but I do know that in 1.8 they moved all the OpenGL calls into "GLStateManager" - you should never be directly calling GL11, as you do for e.g. "GL11.glPushMatrix();", which should instead be "GLStateManager.pushMatrix();"; otherwise, you could end up with GL state inconsistencies (e.g. stack overflow will cause pushMatrix() to fail so the state isn't restored when popMatrix() is called, which in the worst case can completely break all rendering that occurs afterwards. I once managed to break rendering so badly that all textures stopped rendering, even after exiting the world, without any OpenGL errors, which themselves are marginally useful unless you place a lot of "GL11.glGetError()" calls and print out the line number, and even then only actual errors are caught, not unintended state changes). This also presumably makes it easier to update to later versions, which no longer used fixed-function OpenGL (GL11), hence "GLStateManager" (i.e. Mojang could simply update the code in GLStateManager to use newer OpenGL methods).
Also, the best way to see how something is done is to look at vanilla code which does the same thing; e.g. see how item frames render the item in them (they are entities but TESRs are essentially the same).
When i make a TileEntitySpecialRenderer and then use the render function to render the item the item rendered is flickered and it has texture glitches
Here is the video that shows this weird thing
I don't know much about rendering in newer versions (I only mod 1.6.4) but I do know that in 1.8 they moved all the OpenGL calls into "GLStateManager" - you should never be directly calling GL11, as you do for e.g. "GL11.glPushMatrix();", which should instead be "GLStateManager.pushMatrix();"; otherwise, you could end up with GL state inconsistencies (e.g. stack overflow will cause pushMatrix() to fail so the state isn't restored when popMatrix() is called, which in the worst case can completely break all rendering that occurs afterwards. I once managed to break rendering so badly that all textures stopped rendering, even after exiting the world, without any OpenGL errors, which themselves are marginally useful unless you place a lot of "GL11.glGetError()" calls and print out the line number, and even then only actual errors are caught, not unintended state changes). This also presumably makes it easier to update to later versions, which no longer used fixed-function OpenGL (GL11), hence "GLStateManager" (i.e. Mojang could simply update the code in GLStateManager to use newer OpenGL methods).
Also, the best way to see how something is done is to look at vanilla code which does the same thing; e.g. see how item frames render the item in them (they are entities but TESRs are essentially the same).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?