Mojo2 properly using new texture in shader
Monkey Forums/Monkey Programming/Mojo2 properly using new texture in shader| 
 | ||
| I was attempting to create a new texture slot in a material, but got a memory access violation. Not sure what was wrong. But if I just change the name to one of the existing slots such as NormalTexture it works fine and the shader works as I want it to. But I don't use the texture I loaded into the NormalTexture slot for normals, something else instead. M.SetTexture("PixelTexture", P) doesn't work M.SetTexture("NormalTexture", P) works uniform sampler2D PixelTexture; doesn't work uniform sampler2D NormalTexture; works All I'm doing is changing the names and it suddenly works... what else am I missing? The texture is loading fine. The code is all the same but I assume there's something more needed for other named textures? | 
| 
 | ||
| Found solution. It was missing proper initialization I suppose? 
Class PixelShader Extends BumpShader 
	Private
	Global _Instance:PixelShader
	Public
	Function Instance:PixelShader()
		If (_Instance = Null) Then
			_Instance = New PixelShader()
		Endif
		
		Return _Instance
	End
	
	Method New()
		Build(LoadString("monkey://data/pixel.glsl"))
	End
	
	Method OnInitMaterial:Void(M:Material)
		Super.OnInitMaterial(M)
		
		M.SetTexture "PixelTexture", Texture.Flat()
		Return
	End
End
Key is M.SetTexture "PixelTexture", Texture.Flat() Then elsewhere M.SetTexture("PixelTexture", P) Properly works. |