I think it shouldn't be like this. There should be a:
```
private bool _shared; 
```
that should be set in the constructor, then used in the parameterless CreateTexture with the code in the parametered CreateTexture.